打印

串口异常发送一次数据0x00。求版主解答。

[复制链接]
4043|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mingyuekd|  楼主 | 2010-10-12 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
msp147片子上电,串口异常发送一次数据0x00。
串口初始化是这样的
BCSCTL2 |= SELM1+SELM0;               // MCLK = LFXT1 (safe)   
  UTCTL0 = SSEL0;                       // UCLK = ACLK
  UBR00 = 0x00;                         // 7.3728Mhz/9600 - 768
  UBR10 = 0x03;                         // 7.3728Mhz/9600 - 768  
  UMCTL0 = 0x00;                        // no modulation
  ME1 |= URXE0;                         //// Enable USART0 TXD/RXD
  IE1 |= URXIE0;                        // Enable USART0 RX interrupt
  P3SEL |= 0x20;                        // P3.5 = USART0 RXD  
  P3DIR |= 0x10;                        // P3.4 output direction
此串口初始化后,工作收发一直都很正常。
但有个问题,我每次板子上电时候,总是发现串口TXBUF0里面向外扔了个数据0x00.之后后串口收发都正常。程序加有有看门狗,看门狗中途会复位,每复位一次TXBUF0向外扔数据0x00。这个数据是测了很多次发现的。 TXBUF0无故向外发了个0x00非常致命。有哪位朋友遇到过没。
非常感谢,解难。

相关帖子

沙发
mingyuekd|  楼主 | 2010-10-12 17:25 | 只看该作者
检查过程序很多次,肯定不是我的发送程序,扔的数据。感觉就是430串口初始化完后,TXBUF0自动向外发了一次0x00值。后面一切正常

使用特权

评论回复
板凳
chunyang| | 2010-10-12 17:43 | 只看该作者
不是无故发,而是上电时引脚电平有个暂态过程所致,非上电复位则不应该,要看你的管脚初始化程序。

使用特权

评论回复
地板
mingyuekd|  楼主 | 2010-10-12 18:18 | 只看该作者
感谢chunyang大哥,问题确实是您说的那样,那我的初始化该怎么设置, 才去掉引脚电平那个TXBUF暂态。
在线等待。

使用特权

评论回复
5
mingyuekd|  楼主 | 2010-10-12 18:35 | 只看该作者
我这样试过
void init430(void)
{
BCSCTL2 |= SELM1+SELM0;               // MCLK = LFXT1 (safe)   
  UTCTL0 = SSEL0;                       // UCLK = ACLK
  UBR00 = 0x00;                         // 7.3728Mhz/9600 - 768
  UBR10 = 0x03;                         // 7.3728Mhz/9600 - 768  
  UMCTL0 = 0x00;                        // no modulation
  ME1 |= URXE0;                         //// Enable USART0 TXD/RXD
  IE1 |= URXIE0;                        // Enable USART0 RX interrupt
  P3SEL |= 0x20;                        // P3.5 = USART0 RXD  
  }
  /////////按如上方式初始化430串口,意思就一上电先初始化接收部分,把如下发送使能和功能选择是关掉的。这个时候观察,一上电,txbuf0里面没发0x00.
ME1 |= UTXE0   // Enable USART0 TXD  
P3SEL |= 0x10;    // P3.4

程序正常运行时要发数据肯定要使能 后面两条件,ME1 |= UTXE0   ;P3SEL |= 0x10;
奇怪,我发的一个数据出去时候,0x00就在我的数据前面,后面在没有了。非常莫名。

使用特权

评论回复
6
mingyuekd|  楼主 | 2010-10-12 19:15 | 只看该作者
问题也解决,TX脚上加上拉电阻,如chunyang大哥说的上电时TX引脚有个TTL低电平暂态。所以总发个00出来。

使用特权

评论回复
7
21huangxh| | 2011-4-14 19:36 | 只看该作者
学习了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

151

帖子

0

粉丝