完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
今天做lora通讯,用到usart,配置时发现usart奇偶校验困惑。假如CR1->M、CR1->PCE、CR1->PS均置位即发送9位数据(含最高位:校验位),校验使能,偶校验。在此条件下,数据寄存器写入0x101,那么发送时发送的结果是什么,是0x001,还是0x101?首先数据寄存器可以写入9位数据,那么发送时奇偶校验位是以数据寄存器含1个数计算,还是说在移位寄存器移动统计前8位,然后直接补上校验位。网上没搜索到相应情况和分析
|
|
相关推荐
1个回答
|
|
在这种情况下,我们需要分析USART的配置和奇偶校验的工作原理。首先,我们需要了解USART的寄存器配置和奇偶校验的计算方法。
1. 配置USART寄存器: - CR1->M:设置为1,表示使用9位数据长度。 - CR1->PCE:设置为1,表示启用奇偶校验。 - CR1->PS:设置为1,表示使用偶校验。 2. 奇偶校验计算: - 奇偶校验位是根据数据寄存器中的前8位数据计算得出的。对于偶校验,如果前8位数据中1的个数为偶数,则校验位为0;如果为奇数,则校验位为1。 现在,我们来分析数据寄存器写入0x101的情况: 0x101的二进制表示为:0001 0000 0001 前8位数据为:0001 0000 根据偶校验规则,前8位数据中有1个1,为奇数,所以校验位为1。 因此,发送的数据为:0001 0000 0001(包括校验位) 所以,在这种情况下,发送的结果是0x101,而不是0x001。这是因为USART在发送数据时,会根据前8位数据计算奇偶校验位,并将其附加到数据寄存器中的数据上,然后一起发送。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 01:33 , Processed in 0.895423 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号