单片机与PC通信串口收发不一致的问题

来源:百度知道 编辑:UC知道 时间:2024/06/13 11:44:41
用的PIC16F877A

现在在调试串口,用的李学海那本书上的串口调试程序

为什么遇到发送和接收不一致的情况?

就是我发1,用串口调试助手接收到的是9>

发其他数据有的是正确的,但是都带>号。

这是什么原因呢

大家帮帮我,谢谢了。

程序应该没有问题,我从书上直接抄的

VAL_US EQU .249
VAL_MS EQU .200
;-------------
STATUS EQU 3H
Z EQU 2H
INTCON EQU 0BH
PORTC EQU 07H
TRISC EQU 87H
PORTD EQU 08H
TRISD EQU 88H
RP0 EQU 5H
PIR1 EQU 0CH
PIE1 EQU 8CH
RCSTA EQU 18H
TXSTA EQU 98H
SPBRG EQU 99H
RCREG EQU 1AH
TXREG EQU 19H
GIE EQU 7
PEIE EQU 6
RCIF EQU 5
RCIE EQU 5

COUNT EQU 0X70
COUNT_MS EQU 0X71

ORG 0X0000
GOTO STARTUP
ORG 0X0004

BTFSS PIR1,RCIF
GOTO ERR_EXIT
MOVF RCREG,0
MOVWF TXREG

有可能是字符显示的问题。字符显示时用的是ascII码。例如受到的数据是 0x39,正好对应ascII码表的 “9”字符,所以就显示“9”。

原因很多,比如波特率,电路板干扰,电源电压等都有可能影响。