完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void uart_init(u32 pclk2,u32 bound){ float temp;u16 mantissa;u16 fraction; temp=(float)(pclk2*1000000)/(bound*16);//这里乘16是什么意思啊?没弄明白mantissa=temp; //得到整数部分fraction=(temp-mantissa)*16; //得到小数部分 mantissa<<=4;mantissa+=fraction; RCC->APB2ENR|=1<<2; //使能PORTA口时钟 RCC->APB2ENR|=1<<14; //使能串口时钟 GPIOA->CRH&=0XFFFFF00F; GPIOA->CRH|=0X000008B0;//IO状态设置 RCC->APB2RSTR|=1<<14; //复位串口1RCC->APB2RSTR&=~(1<<14);//停止复位 //波特率设置 USART1->BRR=mantissa; // 波特率设置 USART1->CR1|=0X200C; //1位停止,无校验位.#ifdef EN_USART1_RX //如果使能了接收//使能接收中断USART1->CR1|=1<<8; //PE中断使能USART1->CR1|=1<<5; //接收缓冲区非空中断使能 MY_NVIC_Init(3,3,USART1_IRQChannel,2);//组2,最低优先级 #endif}
|
|
相关推荐
7个回答
|
|
这个是对波特率的设置问题
串口的波特率比较任性话,分为整数部分,和小数部分,这样串口出错的几率大大降低了 具体的是低四位表示小数部分,所以乘以十六相当于把你设置的波特率向左移动四位,然后的到波特率的整数部分 楼主可以参考一下串口哪一张的东西就OK了 |
|
|
|
看<
|
|
|
|
感觉参官方的考手册上把那个寄存器分成整数部分和小数部分意义不大,貌似只是想说明误差的问题
我在代码里不作区分直接把波对率寄存器的值当一个整体用了,没发现问题,只不过公式变一下形就可以了。 具体的可以看这里:http://www.openedv.com/posts/list/3210.htm (15楼) |
|
|
|
当整体用也是一样的效果.ST确实这里有忽悠的成分.
|
|
|
|
不是忽悠的,首先从硬件上,的确是前12位和后4位有区别的。
软件上,在开启8分频采样的时候, BRR的第4位是置零的。 ST把两个不同功能的信号,映射到同一个寄存器里,方便软件编写,反而变成忽悠了。。 |
|
|
|
之前有一网友和我讨论过,ST这里的波特率发生器是玩了一个数字游戏.
ST提供的波特率公式:波特率 = fPLCKx /(16*USARTDIV) 但若视USARTDIV为整数,波特率公式就成了:波特率 = fPLCKx /USARTDIV 按照第2个公式,它就是一个整数波特率发生器,把它除16变成小数再在公式里乘16,其实是玩了一个数字游戏,是骗人的。 所以,我们可以把波特率计算公式修改为如下: USART1->BRR==pclk2*1000000/bound; 如果希望最后能四舍五入就改成: USART1->BRR==(pclk2*1000000+(bound/2))/bound; 这公式得出的结果和我们现在用的计算结果基本是一样的,最多相差1. |
|
|
|
明白了,多谢!!!!!!!!!!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1621 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1546 浏览 1 评论
980 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
686 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1599 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 01:52 , Processed in 0.700939 second(s), Total 61, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号