原创 关于stm32的串口-百思不得其解

2008-8-8 00:55 9157 15 21 分类: MCU/ 嵌入式

看了万利的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”。


然后从串口调试助手收到的却是:


fb56c6d1-af83-482e-8bb9-ffe92d5afab1.jpg


不知道问题出在哪里,然后我又看了SendData的字程序,于是把上面的程序修改了下:


      USARTx->DR=TxBuffer[TxCounter++];
      if(TxCounter>=9)
      {
       TxCounter = 0;
      }
       while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
      {
      }
      delay();delay();delay();delay();


发现效果还是一样!


伤脑筋阿,难道是硬件的问题吗?各位大哥,你们怎么搞得串口阿?


给我指点迷津吧,我快要搞崩溃了

PARTNER CONTENT

文章评论9条评论)

登录后参与讨论

用户619968 2008-8-19 12:21

啥时把板子也借我玩哈,呵呵

用户154657 2008-8-12 10:49

请参考STM32博客!

用户152087 2008-8-12 10:35

受教了!STM32貌似很强大的样子。

walnutcy_696810119 2008-8-9 10:51

上面格式都因EDN的原因,排布不好,请查看: http://blog.ednchina.com/walnutcy/144509/message.aspx

walnutcy_696810119 2008-8-9 10:31

回复的数据都没格式,EDN这块该改改了,你可能要拷贝下来重新理下了,嘻嘻,

walnutcy_696810119 2008-8-9 10:29

如果用STM32的库的话,直接配置: USART_InitStructure.USART_BaudRate = baudrate; // 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No ; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_InitStructure.USART_Clock = USART_Clock_Disable; USART_InitStructure.USART_CPOL = USART_CPOL_Low; USART_InitStructure.USART_CPHA = USART_CPHA_2Edge; USART_InitStructure.USART_LastBit = USART_LastBit_Disable; /* Configure the USARTx */ USART_Init(USARTx, &USART_InitStructure); /* Enable the USART Transmoit interrupt: this interrupt is generated when the USART1 transmit data register is empty */ //USART_ITConfig(USARTx, USART_IT_TXE, ENABLE); ---walter 20080422 /* Enable the USART Receive interrupt: this interrupt is generated when the USART1 receive data register is not empty */ USART_ITConfig(USARTx, USART_IT_RXNE, ENABLE); /* Enable the USARTx */ USART_Cmd(USARTx, ENABLE); 下边是我们5月份在21ic写的串口终端讲解: http://blog.ednchina.com/walnutcy/141801/message.aspx

用户1090342 2008-8-8 18:29

这个配置是PC端还是STM32端? 估计你没有看我推荐的博客文章:如果是PC端设置为这样,则STM32端应该配置为9位+偶校验,还是去看看我的博客吧。

hendiao 2008-8-8 11:46

不是啊,我设置了的,波特率115200,偶校验,一个停止位,8位数据位,都没错!但是就是接收到的只有其中一部分,我用16进制接受,出现00,1E,1F等根本就不是原本打算输出的。

用户1090342 2008-8-8 09:35

请检查你PC端和MCU端的配置是否匹配?波特率、字节长度、奇偶校验、停止位等。 似乎是你在STM32一侧是指了偶校验而PC端没有设置校验。 请参考我的博客:STM32的UART支持格式解读

用户1403417 2007-9-18 12:05

还没听,,先顶你两下..呵呵..

相关推荐阅读
hendiao 2011-04-11 17:21
基于STM32的智能汽车前灯系统计划
STM32项目/学习计划表项目名称 请点击以下链接更新您的个人资料(包括“职位,部门,单位名称,地址,邮编,电子邮箱,电话”),以便我们能及时联系您并快速发送开发套件。http://space.edn...
hendiao 2011-04-11 17:21
基于STM32的GPS公交报站系统
STM32项目/学习计划表项目名称 请点击以下链接更新您的个人资料(包括“职位,部门,单位名称,地址,邮编,电子邮箱,电话”),以便我们能及时联系您并快速发送开发套件。http://space.edn...
hendiao 2011-04-11 17:21
基于STM32的GPRS/GSM抄表系统
STM32项目/学习计划表项目名称 请点击以下链接更新您的个人资料(包括“职位,部门,单位名称,地址,邮编,电子邮箱,电话”),以便我们能及时联系您并快速发送开发套件。http://space.edn...
hendiao 2011-04-11 17:20
建立在GSM/GPRS的家庭智能报警和控制系统的初步想法
STM32项目/学习计划表项目名称 请点击以下链接更新您的个人资料(包括“职位,部门,单位名称,地址,邮编,电子邮箱,电话”),以便我们能及时联系您并快速发送开发套件。http://space.edn...
hendiao 2008-11-27 11:42
用三极管实现3V与5V混合系统中逻辑器接口问题(原创)
3V与5V混合系统中逻辑器接口问题在电路设计当中,往往会遇到电压匹配问题,因为电路中往往不只只有一个电平信号,大部分包括3.3V,5V或者12V,但是有时候需要用到3.3V和5V的通信或者对联,这其中...
hendiao 2008-11-27 11:41
adsl modem和PC通过RS232的接口
这是一个朋友给我看得电路这个电路时modem和PC的连接图在PC端,用到了RS232的5个信号,modem端则只用到了RXD、TXD和GND。我们来分析一下modem的TXD到PC端的RXD这个电路中...
EE直播间
更多
我要评论
9
15
关闭 站长推荐上一条 /3 下一条