5616AD串口收发数据问题
请教各位,我现在测试5616AD的串口收发数据,但发现如果从仿真终端发一串byte数据,5616AD只能显示收到最前面的两个.这是什么回事?我现在的需求是收发一串数据,请问这应该如何编程?
谢谢各位!
hex显示一个char吗?还2个char。没代码且描述不是很清楚。 hex显示一个char吗?还2个char。没代码且描述不是很清楚。 这是接收数据的中断的代码
void UsartInt() interrupt 4 {
u8 i;
if(RI){
dataReceive=SBUF;
RI=0;
for(i=0;i<dataLength;i++) printf("0x%x ",dataReceive);
printf("\nreceive data,the length is: %D;\n",dataLength);
} 这是程序显示的结果,我是发11 22 33 44 55 66这一串16进制数据,但结果显示5616AD只接收了前面两个,后面4个就没有了.还有,我是用dataReceive这个数组来接收数据,数组下标没接收到一个数据后加1,但结果是没接收到一个数据就加256,这又是哪里出了问题?
谢谢指教. liuyu8087 发表于 2024-9-21 09:54
这是接收数据的中断的代码
void UsartInt() interrupt 4 {
u8 i;
竟然在中断里用printf!? Lkck8210 发表于 2024-9-21 10:39
竟然在中断里用printf!?
不能这样用吗?可否提供一个例程?谢谢! 感觉逻辑不是很好 soma 发表于 2024-9-21 10:48
感觉逻辑不是很好
请教错在哪里?
我的需求就是上位机发一串二进制数据过来,单片机可以准确接收到;同样,下位机发一串二进制数据过去,上位机也能准确接收到就可以了. https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4598
页:
[1]
2