中级会员
 
- 积分
- 253
- 金钱
- 253
- 注册时间
- 2016-3-29
- 在线时间
- 96 小时
|
5金钱
发送了一串十六进制,能够发送到串口助手上显示,却无法接收到我发送的内容,是什么原因?
主函数:
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次数据的长度
printf("\r\n您发送的消息为:\r\n");
for(t=0;t<len;t++)
{
USART1->DR=USART_RX_BUF[t];
while((USART1->SR&0X40)==0);//等待数据发送完
}
printf("\r\n\r\n");//换行
USART_RX_STA=0;
}else
{
times++;
if(times%500==0)
{
printf("\r\n\r\n");
CO2START();
delay_ms(200);
}
if(times%30==0)LED0=!LED0;
delay_ms(10);
}
}
CO2START()函数内容:
void CO2START(void)
{
u8 MH_com[11]={0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79,0x0D,0x0A};
int i;
for(i=0; i<11; i++)
{
USART1->DR = MH_com[i];
while((USART1->SR&0X40)==0);
delay_ms(100);
}
}
串口一在发送数据,却没有接收数据,怎么才能是它自动接收我发送的数据?实现如下效果,请大神赐教,非常感谢!!!
例:
发送的内容为:FF 01 86 00 00 00 00 00 79
在串口助手上显示
您发送的消息为:FF 01 86 00 00 00 00 00 79
|
最佳答案
查看完整内容[请看2#楼]
看不懂楼主说的:
“发送了一串十六进制,能够发送到串口助手上显示,却无法接收到我发送的内容”
不是矛盾吗?
但是对于楼主所说的:
这个只要电脑端串口设置正确并打开,硬件链路没有问题,单片机串口端只要发送数据,串口助手这里就会接收到。
我实在是看得比较糊涂,猜测楼主怕是在串口助手端设置HEX显示和ASCII显示的时候,要么就只能显示十六进制数,字符也变成了十六进制数来显示(HEX模式),要么就是能够显示 ...
|