电脑串口一直接收不了单片机发送过来的数据啊...

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电脑串口一直接收不了单片机发送过来的数据啊...相关的知识,希望对你有一定的参考价值。

main(void)
TMOD=0x20;//定时器R1的工作方式为2,定时器0的工作方式为0
TH1 =0xfd; //R1的溢出率 ,
TR1 =1;
PCON =0x00;//波特率不提高一倍
SCON =0x50;//设置工作方式为1,可以接收数据
ET1 =0;//关闭定时器1的中断响应
ES =1; //打开串口接收中断
EA =1;

while(1)
// if(p3_6==0)
SBUF='a';
while(!TI);
TI=0;

接收不了数据有几个方面的原因:
第一:你的必须是RS232接口,也就是你的接口芯片与接口是否一致。
第二:你的晶振与波特率是否对得上,看你的软件应该是11.0592M的晶振的配置。9600BPS的。看你的晶振是否对得上。
第三:目前你不是采用的是中断,而是询问模式,所以,你确定一下是否可行;
参考技术A

给你一个调试通过的单片机串口程序和上位机的串口调试软件,你试试吧,很简单的,有问题再问

参考技术B 把串口的2、3接口用1K电阻短接,用COM口测试工具或超级终端度着重送数据。看能不能接收到数据来判断COM是否可用。当然,要选择好COM口序号。(在设备管理器可以进行适当的调整的。)

stm32 串口发送数组 cpu可以工作吗

参考技术A 可以。
STM32使用串口1配合DMA接收不定长数据,减轻CPU载荷,用STM32F103的串口1,并配置成空闲中断模式且使能DMA接收,并同时设置接收缓冲区和初始化DMA。那么初始化完成之后,当外部给单片机发送数据的时候,假设这帧数据长度是100个字节。
那么在单片机接收到一个字节的时候并不会产生串口中断,而是DMA在后台把数据默默地搬运到你指定的缓冲区里面。当整帧数据发送完毕之后串口才会产生一次中断,此时可以利用DMA下杠线GetCurrDataCounter,函数计算出本次的数据接受长度,从而进行数据处理。

以上是关于电脑串口一直接收不了单片机发送过来的数据啊...的主要内容,如果未能解决你的问题,请参考以下文章

求助,stm8s103串口接收中断进不了

单片机串口发送的数据一直是00;求解

单片机,能不能用gpio口读取ttl串口引脚输出的数值啊?

STM32单片机通过USART1接收到数据后,怎么把接收到的数据通过单片机的CAN口发送出去啊?

STM8s003 串口发送数据后不再接收

PIC单片机串口接收进不了中断,发送正常