看了万利的stm32的uart的例程之后,发现很郁闷。根本不能实现人机对话,他就是从串口1发送到串口2,然后验证一下发送的数据是否正确,然后显示到lcd上面去。这样对于初次接触uart的朋友来说,没有任何帮助。
于是我打算通过pc和stm32的串口通信,我发现我错了!但是不知道问题出在哪里,郁闷了好久阿。
1、pc发送,stm32接受,接受到预定的字符之后,lcd显示“haha”
部分程序:
while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
{
}
RxBuffer[RxCounter++] = (USART_ReceiveData(USART1) & 0x7F);
if(USART_ReceiveData(USART1) == 'p')
{
write_string("HAHA");
}
发现能够按照预想的结果,当我通过串口调试助手输入p的时候,lcd显示“HAHA”。这一点我感到很兴奋,于是马上写stm32发送给串口的。
2、stm32到pc串口
部分程序:
USART_SendData(USART1,TxBuffer[TxCounter++]);
if(TxCounter>=9)
{
TxCounter = 0;
}
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{
}
delay();delay();delay();delay();
其中TxBuffer[]=“123456789”。
然后从串口调试助手收到的却是:
不知道问题出在哪里,然后我又看了SendData的字程序,于是把上面的程序修改了下:
USARTx->DR=TxBuffer[TxCounter++];
if(TxCounter>=9)
{
TxCounter = 0;
}
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
{
}
delay();delay();delay();delay();
发现效果还是一样!
伤脑筋阿,难道是硬件的问题吗?各位大哥,你们怎么搞得串口阿?
给我指点迷津吧,我快要搞崩溃了
用户619968 2008-8-19 12:21
用户154657 2008-8-12 10:49
用户152087 2008-8-12 10:35
walnutcy_696810119 2008-8-9 10:51
walnutcy_696810119 2008-8-9 10:31
walnutcy_696810119 2008-8-9 10:29
用户1090342 2008-8-8 18:29
hendiao 2008-8-8 11:46
用户1090342 2008-8-8 09:35
用户1403417 2007-9-18 12:05
还没听,,先顶你两下..呵呵..