本帖最后由 我的颈 于 2015-12-26 10:11 编辑 求大婶 帮忙---解决这个问题??????STM32F410RB NUCLEO 时钟为什么会很准???? https://www.stmcu.org.cn/module/ ... amp;fromuid=3231136 (出处: 意法半导体STM32/STM8技术社区) 我又来发帖了,哈哈!! 上次是RCC,不是很详细. 这次是USART配置,尽量的详细些,(遇到个自认为大问题.) 新手发帖多多关照! 好了开始.寄存器版本 开发环境: KEIL MDK 5.16a 板子 : STM32F410 NUCLEO 1. 1 首先是串口GPIO配置 因为USART2使用的PA2,PA3,所以呢先打开AHB的GPIOA时钟, 然后是GPIO模式设置都设置为复用模式(MODE=10)(二进制) 接是着GPIO速度设置我们选择 HIGH Speed(OSPEEDR=10) 接下来GPIO上拉设置我们选择Pull-up(PUPDR=01) 最后是GPIO复用,首先看下F410 datasheet的引脚复用 我们看到 PA2 PA3 在AF7 (TX,RX设置相同)所以呢我们设置GPIO复用 AF7(AFRL=0111) 好的GPIO就设置好了.我们需要记住的是流程,具体为甚? 我也不知道.我就知道这么用.新手懂得不多!! 2. 2 然后是USART配置,这个好说 只需要配置USART2_CR1寄存器的四项(因人而异) USART2_CR的第5位 接收缓存非空 USART2_CR的第3位 TX使能 USART2_CR的第2位 RX使能 USART2_CR的第13位 USART使能 然后是USART_BBR波特率设置 有公式带进去 一元一次方程解得27.126 DIV_Mantissa[11:0]放整数 取27 DIV_Fraction[3:0] 放小数 取13 然后是中断处理函数了 放代码
3然后是调试了遇到了问题(只怪我太马虎) 看下这个引脚的图片 , NUCLEO ,PA2 PA3 复用TX,RX 主函数里一直发送数据,然后用分析仪抓取,什么都抓不到, 有问题?好从头分析,使用STM32F410RBNUCLEO自带的STlink 一步步的调试,看寄存器,我靠设置没问题还是不行!!!!! 用官方库函数的,还是抓不到我靠哪的问题????? 然后一步步调试,看寄存器的值,还是不行.真是日了X了. ……………………………………………………………… 用STM32F410RB NUCLEO 虚拟串口试试? OK!能接受到!!!!.就是抓不到数据, 测试下自己的程序吧!! 我去从虚拟串口也能看到.卧槽但是还是抓不到数据 测试下这个引脚 我去可以有数据 等等!我好想忽略了什么 用万用表测试一下,问题找到了 原来是这样,原理图的SB63的0欧电阻没有焊,所以PA2 PA3 就是NC 板子介绍的文档也没看才导致这个问题,抓抓不到TX数据 原理图看的还是少 不知道那个代表什么意思 (可能是我没仔细看文档) 好了就到这里了.一起交流如有不足欢迎指出 新人发帖!多多关照! 谢谢 附件代码 |
跟随STM32FX的这些年来的心得:
1、动手前看原理图以及实物对照,很重要。(盲目去做会做无用功)
2、STM32F系列的外设寄存器变化不是很大,CM3、CM0只有部分寄存器的位有增减。(个人感觉看中文版的手册比较舒心,E文的手册基本是拿来当勘误用的,避免中文版翻译有遗漏。)
3、个人习惯:初始化函数一般不直接操作寄存器,毕竟初始化只发生有限的次数,不必为了那点时间来降低可移植性(指STM32F系列之间的移植)。在主循环和中断处理,一般是会直接寄存器操作,以优化代码。
(个人愚见,欢迎评论!)
另外,还有一点,使用Uart2 Rx/Tx之前,需要用ST-LinkV2-1初始化固件。避免F10x的ST-link干扰。
确实是这样,涉及复杂的东西,就悲催了
楼主截图的时候,qq截图那一排按钮,有图形文字功能,这样会比用鼠标写较好看
好的谢谢
太丑啦
这调试起来,不是很方便,还要烙铁什么的
手里有0欧姆电阻的话,直接焊上不就行了吗
没有烙铁,没有0欧电阻
确实是,不过那样对布局就会有影响了吧.