完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单字节收发正常,串口助手也能收到原数据。改为多字节发送数据时,怎么发都收不到数据,实在找不到原因,希望各位大侠帮帮忙,万分感谢! 51 串口 (单字符OK).zip (18.35 KB )
|
|
相关推荐
4个回答
|
|
问题已经解决了,是初始化没有成功。现在能实现单字节收发,多字节也可以。
|
|
|
|
我看了一下你的程序,是没有问题的。收不到数据,看看是不是你的晶振跟你现在所设置的波特率不配对,误差太大引起的。你那里配置的是FD,对应的晶振是11.0592M的,如果你的是12M话,可以先尝试一下其他的波特率。例如1200的波特率对应12M的晶振,传输误差就很小,配置是TL1 = 0xe6;
TH1 = 0xe6; |
|
|
|
这个板子,无法下载了。我现在换了一个单片机型号,程序功能和上面,波特率和晶振也都对着,可是还是收不到数据,麻烦你再看一下。
#include #include #include #define uchar unsigned char #define uint unsigned int uchar Rxindex; uchar Rx_SBUF; uchar xdata RecieveData[10]; bit bdata Re_Flag; void Receive_data(); uchar uc_flag_1 = 0; void UartInit(void)//9600bps@11.0592MHz { SCON = 0x50;//8位数据,可变波特率 AUXR = 0x40;//定时器1时钟为Fosc,即1T TMOD = 0x00;//设定定时器1为16位自动重装方式 TL1 = 0xE0;//设定定时初值 TH1 = 0xFE;//设定定时初值 TR1 = 1;//启动定时器1 ES = 1; } void send_dat(uchar dat) { SBUF = dat; while(TI == 0); TI = 0; } void main() { UartInit(); EA = 1; while(1) { if(uc_flag_1) // 每收到一个字节 { ES = 0;//关闭总中断 uc_flag_1 = 0; // 清除接收标志 send_dat(0x11); ES = 1;// 开启总中断 } if(Re_Flag ) // 正确接收到数据 发送0x88 { ES = 0;//关闭总中断 Re_Flag = 0; // 清除接收标志 send_dat(0x88); ES = 1;// 开启总中断 } } } // 串口1中断服务程序 测试 void uart0() interrupt 4 using 1 { if( RI== 1) { RI = 0; Rx_SBUF = SBUF; uc_flag_1 = 1; Receive_data(); } } void Receive_data() { if(Rx_SBUF==0xAA) // 数据长度为8个字节 Rxindex=0; RecieveData[Rxindex++]=Rx_SBUF; if(Rxindex==8) { Rxindex =0x00; // 自定义协议格式为:AA, xx,xx,xx, xx,xx,xx, 55 if((RecieveData[0]==0XAA) && (RecieveData[7]==0X55)) { Re_Flag=1; // 数据头和数据尾均正确 } } } |
|
|
|
你现在的程序能实现单个数据的发送接受吗?
|
|
|
|
只有小组成员才能发言,加入小组>>
2975 浏览 9 评论
2692 浏览 16 评论
3214 浏览 1 评论
8438 浏览 16 评论
3777 浏览 18 评论
6961浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7457浏览 3评论
6958浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5805浏览 3评论
9375浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 11:49 , Processed in 0.781010 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号