在线时间62 小时
UID3231136
ST金币0
蝴蝶豆0
注册时间2015-12-14
金牌会员
- 最后登录
- 2020-3-5
|
a0a.1 32b0c
本帖最后由 我的颈 于 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
然后是中断处理函数了
放代码
- void USART2_IRQHandler(void)
- {
- if(USART2->SR&(1<<5))//????? //是否接收中断
- {
- USART2->DR=USART2->DR; //接收在发送
- }
- }
- void USART2_Init(void)
- {
- RCC->AHB1ENR |=1<<0; //GPIOA 时钟
-
- GPIOA->MODER |=2<<4; //PA2复用模式
- GPIOA->MODER |=2<<6; //PA3复用模式
- GPIOA->OSPEEDR |=2<<4; //IO速度
- GPIOA->OSPEEDR |=2<<6; //IO速度
- GPIOA->PUPDR |=1<<4; //上拉
- GPIOA->PUPDR |=1<<6; //上拉
- GPIOA->AFR[0] |=7<<12; //复用AF7 RX
- GPIOA->AFR[0] |=7<<8; //复用AF7 TX
- USART2->SR &=~(1<<5); //清除接收中断
- RCC->APB1ENR |=1<<17; //USART2时钟
- USART2->BRR |=27<<4; //波特率
- USART2->BRR |=13<<0; //小数位
- USART2->CR1 |=1<<5; //开启接收中断
- USART2->CR1 |=1<<3; //接收使能
- USART2->CR1 |=1<<2; //发送使能
- USART2->CR1 |=1<<13; //USART 使能
- NVIC_Init(2,3,3,USART2_IRQn); //中断优先级
- }
复制代码
3然后是调试了遇到了问题(只怪我太马虎)
看下这个引脚的图片 , NUCLEO ,PA2 PA3 复用TX,RX
主函数里一直发送数据,然后用分析仪抓取,什么都抓不到,
有问题?好从头分析,使用STM32F410RBNUCLEO自带的STlink
一步步的调试,看寄存器,我靠设置没问题还是不行!!!!!
用官方库函数的,还是抓不到我靠哪的问题?????
然后一步步调试,看寄存器的值,还是不行.真是日了X了.
………………………………………………………………
用STM32F410RB NUCLEO 虚拟串口试试?
OK!能接受到!!!!.就是抓不到数据,
测试下自己的程序吧!!
我去从虚拟串口也能看到.卧槽但是还是抓不到数据
测试下这个引脚
我去可以有数据
等等!我好想忽略了什么
用万用表测试一下,问题找到了
原来是这样,原理图的SB63的0欧电阻没有焊,所以PA2 PA3 就是NC
板子介绍的文档也没看才导致这个问题,抓抓不到TX数据
原理图看的还是少 不知道那个代表什么意思
(可能是我没仔细看文档)
好了就到这里了.一起交流如有不足欢迎指出
新人发帖!多多关照!
谢谢
附件代码
可以在STM32F410 NUCLEO运行01.rar
(98.17 KB, 下载次数: 22)
|
评分
-
查看全部评分
|