![]() |
發送不要寫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; |
從你給的程序,說明不了你發一個字節應返回一個字節。 |