完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
从机的串口配置为: 9600, 8 , 奇校验,1个停止位
当主机用UART3接收到从机发来的一个字节时,我怎么读到这个字节对应的校验位的值呢? 在MDB协议中,有一个模式位的概念,相当于串口的校验位,从机发送数据时,模式位置0,从机在发最后一个字节时,模式位会置1,说明从机数据发送完毕, 所以我需要能读出来接收到的每一个字节对应校验位是0还是1,来判断数据是否接收完毕 |
|
相关推荐
1个回答
|
|
在UART3接收到从机发来的一个字节时,你可以通过读取UART3寄存器来获取这个字节的校验位值。
首先,你需要配置UART3的串口参数,包括波特率、数据位、校验位和停止位。根据你提供的信息,配置UART3的参数为9600波特率,8位数据位,奇校验,1个停止位。 接下来,你可以使用UART3接收中断或轮询的方式来读取接收到的字节和对应的校验位。具体步骤如下: 1. 使能UART3的接收中断或设置为轮询方式。 2. 在中断服务函数中,或者在循环中,通过读取UART3的寄存器来获取接收到的字节和对应的校验位。 a. 读取UART3的数据寄存器(例如,UART3_DR),获取接收到的字节。 b. 读取UART3的校验状态寄存器(例如,UART3_SR),获取接收到的字节对应的校验位。其中校验状态寄存器的某些位可能表示接收到字节的校验位的状态,具体根据硬件的实现而定,可能是一个单独的位,也可能是几个位组合。 例如,如果校验状态寄存器的第0位为1,表示接收到的字节的校验位为1,如果第0位为0,表示接收到的字节的校验位为0。 3. 根据校验位的值来判断数据是否接收完毕。根据你提供的信息,当模式位置1表示从机数据发送完毕,此时可以判断数据接收完毕。 需要注意的是,具体的寄存器名字和位定义根据所使用的硬件平台和微控制器型号可能不同,你需要查阅相关的参考文档或手册来获取确切的寄存器和位定义信息。同时,串口的配置和数据读取也需要根据所使用的开发环境和编程语言进行相应的设置和编写。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之Makefile修改
947 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
1647 浏览 0 评论
1133 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
1363 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
1903 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12173 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-14 13:02 , Processed in 0.534506 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号