串口问题,高手指点

发布: 2010-1-08 10:53 | 作者: 06082314 | 来源: StmFans思蜕盟 OPELC 自由电子联盟

[i=s] 本帖最后由 06082314 于 2010-1-8 10:56 编辑

我突然发现我用USART1向pc机的串口发数据无论怎样都是乱码
用豆皮的历程不好用,然后
我这样最简单的实验过:
主函数中
  //配置系统时钟
  RCC_Configuration();
  //配置  NVIC 和 Vector Table
  NVIC_Configuration();
  UART1_GPIO_Configuration();
  UART1_Configuration();
  while (1)
  {
     USART_SendData(USART1, 0x23);
}
然后在RAM中调试,用串口调试助手收数据,一直是乱码,请高手指点
有可能是什么问题呢?
trinove (2010-1-08 12:06:23)
检查一下串口速率 还有 晶振频率
06082314 (2010-1-08 13:16:10)
2# trinove
晶振频率是8MHz,波特率我依次试了一遍,还是不行啊
binglin (2010-1-15 16:02:26)

CODE:

while (1)
  {
     USART_SendData(USART1, 0x23);
}
晕,你不检查发送数据寄存器空标志位就持续发送数据,不乱码才怪,改成下面的试试:

CODE:

while (1)
  {
     USART_SendData(USART1, 0x23);
     while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)  {}
}