原创 STM32串口问题

2008-8-16 06:52 2636 4 6 分类: MCU/ 嵌入式

我的串口设置如下:


  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吗?


请高手指点啦

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户91665 2008-8-18 15:41

没用的,我试过9600,这是芯片的BUG吗?

用户1090342 2008-8-16 09:04

似乎是PC端的时钟较快,降低波特率试试。
相关推荐阅读
EE直播间
更多
我要评论
2
4
关闭 站长推荐上一条 /3 下一条