发送不要写0x,只写fe |
linlandon 发表于 2023-9-15 13:24 我是直接用芯片运行,不是仿真。 |
谢谢大家,在大家帮助下终于搞定了,仿真也有回传,正常了 |
cjjdemon 发表于 2023-9-15 08:03 正解,不然串口调试助手就识别成两个字节了 |
zyftank 发表于 2023-9-15 07:55 正解,不然串口调试助手就识别成两个字节了 |
linlandon 发表于 2023-9-15 13:34 这种情况需要安装一个虚拟串口工具,虚拟出一对虚拟的串口,Protues中的P1的属性中,你选择这对虚拟串口中的一个,串口调试助手选择另外一个虚拟串口,这样才能正常通信。 |
我去掉0x后,在串口助手发送还是接收不到呢? |
xuyaqi 发表于 2023-9-15 10:57 请问你用的proteus仿真吗?多少版本的。我用8.7版本的,从上位机发送,单片机还是接收不到字节 |
xuyaqi 发表于 2023-9-15 10:57 请问能用的proteus仿真吗?多少版本的。我用8.7版本的,从上位机发送,单片机还是接收不到字节 |
戡拤 发表于 2023-9-15 09:07 等待字节发送完成,然后才可以发送下一个字节。 |
谢谢大家了,恍然大悟。怪不得我仿真的时候在程序中发送可以接收到,而在串口发送却不能接收返回。我太爱你们了![]() |
你收到的数放在rev,发应该发rev而不是rev+1,你指定HEX模式直接写FE,不要写0x。
![]() |
npn 发表于 2023-9-15 07:34 可以说明一下这样改动的原因吗? |
发送不要写0xfe,只写fe |
发送缓冲区填不填0xFE,直接填FE试试? |
你去掉前面的0x |
SBUF = rev + 1; while (!TI); TI = 0; |
从你给的程序,说明不了你发一个字节应返回一个字节。 |