完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我现在在使用adcu7061串口通讯。能发送,但是不能接收,我需要中断接收。有没有这个方便的资料给我
if((COMSTA0 0X01)==0X01) {ucRxChar = COMRX; sprintf ( (char*)szTemp1, "%d,rn",ucRxChar);GupSend(szTemp1); } 以上不是中断的接收数据,只能接受单字节.我实际需要中断来接收. 同时还有一个问题,按照上面的程序,我使用串口工具,例如发送01,接收到了30 2C 0D 0A;发送02,接收到了31 2C 0D 0A; ......发送09。接收到了39 2C 0D 0A; 如果发送0a ,接收到了31 30 2C 0D 0A ; 如果发送10,接收到了31 36 2C 0D 0A; 很有规列:在发送01-09的时候,只是接收到的数据30-39的3后面的数据对应1-9; 不管怎么样。这些数据都不是我需要的。我的意思是发送01的时候,接收的正确的应该是01 0D 0A; 实际应用中,如发送01 02 03 04.我应该是中断接收依次是01 0D 0A , 02 0D 0A ;03 0D 0A; 04 0D 0A |
|
相关推荐
2个回答
|
|
串口通信的速率是由UART的波特率决定的,波特率由相关寄存器配置。
|
|
|
|
有几个可能的原因导致您无法接收到数据:
1. 数据格式不匹配:确保您的代码中设置了正确的数据格式(如波特率、数据位、校验位和停止位),与 ADUC7061 配置一致。 2. 中断未正确配置:确保您已经正确地配置了串口中断,以便在接收到数据时触发。您可以查看 ADUC7061 的手册或参考资料,了解如何配置中断。 3. 缓冲区溢出:如果接收到的数据量超过了缓冲区的大小,可能会导致数据丢失。请确保您的缓冲区大小足够大,以容纳您预期的数据量。您还可以使用循环缓冲区来避免数据丢失。 至于您的第二个问题,接收到的数据似乎被解析错误。这可能是因为 ADUC7061 在接收到数据时使用了特殊的字符编码(如 ASCII 码),您的程序可能需要进行相应的解码才能正确显示接收到的数据。您可以查看 ADUC7061 的手册或参考资料,了解它的数据格式和编码方式。 如果您仍然遇到问题,请提供更多关于您的代码和硬件设置的详细信息,以便我们能够更好地帮助您解决问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
726 浏览 0 评论
777 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
680 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1149 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1120 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11800 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 00:52 , Processed in 0.516153 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号