完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
void wait (void) { unsigned long i; for (i = 0; i < 100000; ) { i++; } } /* 由串口发送一个unsigned char (8b)数据 */ void comm_send_char(unsigned char data) { while(!(0x020==(COMSTA0 0x020))) //当COMTX为空时TEMT(COMSTA0.5)=1,向COMTX写数据后TEMT=0 {} COMTX = data; } int main (void) { //GPIO初始化 GP1CON = 0x00000011; // P1.0 UART SIN, P1.1 UART SOUT //UART初始化 COMCON0 = 0x80; // Setting DLAB 访问COMDIV0和COMDIV1寄存器 COMDIV0 = 0x44; // 19200 COMDIV1 = 0x00; COMCON0 = 0x03; // Clearing DLAB 访问COMRX和COMTX寄存器 8位长度 1停止位 GP2DAT = 0xff000000; while (1) { GP2DAT ^= 0x00ff0000; comm_send_char(0x01); wait (); /* call wait function */ } } 这是我的程序代码,我使用串口助手调试,收不到发送的数据,求教原因。 |
|
相关推荐
1个回答
|
|
可能有以下几个原因导致串口通信收不到发送的数据:
1. 波特率设置不一致:发送方和接收方的波特率需要一致,否则无法正常通信。 2. 数据位、停止位、校验位设置不正确:发送方和接收方的数据位、停止位、校验位设置需要一致,否则无法正确解析接收到的数据。 3. 数据传输过程中出现错误:可能是硬件问题或者信号干扰等原因导致数据传输出错。 4. 接收缓冲区溢出:如果发送方发送数据过快,接收方的缓冲区可能会溢出,导致无法正常接收数据。 5. 硬件连接问题:可能是连接线路、电压等问题导致无法正常传输数据。 可以逐步排除以上问题,查看串口通信的相关设置和硬件连接是否正确,尝试通过调整波特率、数据位、停止位、校验位等参数来解决问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
Openharmony软件评估指南-米尔瑞芯微RK3568开发板
100 浏览 0 评论
STM32CUBEMX(7)--移植雅特力AT32F403AVGT(兼容STM32F103VGT6),DAC输出电压
477 浏览 0 评论
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】开发板简介与上电测试
606 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之传参
474 浏览 0 评论
【xG24 Matter开发套件试用体验】点灯之后的UART测试
550 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11021 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-8 09:16 , Processed in 0.517082 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191