我的串口设置如下:
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_None;
USART_InitStructure.USART_HardwareFlowControl = SART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
我在计算机和单片机上各发送相同的数据(十六进制):
0x80 0x81 0x04 0x08 0x31 0x32
计算机上显示:
0x80 0x81 0x84 0x88 0xB1 0xB2(显示错误)
单片机上显示:
0x80 0x81 0x04 0x08 0x31 0x32(显示正确)
结果计算机上显示的数据是错误的,第8位一直是“1”。
我只道8位数据包含校验位,但是现在校验位设置为“无”。
那第8位数据是校验位,还是数据第8位?
那如果要接收8位的十六进制数据,数据位一定要设置位9b吗?
请高手指点啦
用户91665 2008-8-18 15:41
用户1090342 2008-8-16 09:04