完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、STM32串口异步通信需要定义的参数:
1、起始位:1个逻辑0数据位开始 2、数据位(8位或者9位) 3、奇偶校验位(第9位) 4、停止位(1,1.5,2位) 5、波特率设置 二、波特率的计算方法 : 1、公式: 1、fCK:时钟频率 2、OVER8:对于M3没有OVER8,默认为0。OVER8只可以取0或1。由USART_CR1的第15位所控制 取0时:16倍过的采样。取1时:8倍过采样。当然采样频率越高,出错率就越大。 3、USARTDIV:是一个存放在USART_BR寄存器中的无符号定点数。 波特率寄存器(USART_BRR)如下图: 第16位到31位保留,没有使用。 第4位到第15位,用于存放整数。 第0位到第三位,用于存放小数。 当OVER8=0时,小数部分编码为4位并通过USART_BRR寄存器中的DIV_fraction[3:0]位编程。 当OVER8=1时,小数部分编码为3位并通过USART_BRR寄存器中的DIlV_fraction[2:0]位编程,此时DIV_fraction[3]位必须保持清零状态。 例题: 假如串口时钟为90M,OVER8=0,需要得到115200的波特率,该如何计算USARTDIV的值呢。 答: USARTDIV=90,000,000/(115200*16)=48.828 DIV_Fraction=USART的小数部分 X16所得的整数,DIV_Fraction=16*0.828=13=0X0D。 DIV_Mantissa=USART的整数部分,DIV_Mantissa=48=0X30。 这样我们只要将串口的USART_BRR寄存器设置为0X30D就可以得到115200的波特率了。 三、补充: USART框图: (非常感谢您的观看,如果对大佬您有帮助的话,给小丁个赞呗,谢谢大佬) |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1632 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1559 浏览 1 评论
985 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1605 浏览 2 评论
1869浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
652浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
521浏览 3评论
539浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
508浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:21 , Processed in 0.583429 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号