亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6122|回復: 1
打印 上一主題 下一主題
收起左側

MSP-EXP430G2串口調試問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:70976 發表于 2014-12-24 13:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
好久之前就弄過這個開發板了,感覺是沒什么問題。串口實驗也做過,不料今天再次使用,卻出現這么嚴重的問題。
程序如下,
uchar txbuf[6]={0x01,0x02,0x03,0x04,0x05,0x06};
void Uart_Init(void)
{
  P1DIR |= BIT2;
  P1DIR &=~BIT1;
  P1SEL |= BIT1+BIT2;
  P1SEL2|=BIT1+BIT2;
  //UCA0CTL0|=UCMSB;
  UCA0CTL1|=UCSWRST;
  UCA0CTL1|=UCSSEL_2;
  //UCA0STAT|=UCLISTEN;
  UCA0BR0 = 833%256;
  UCA0BR1 = 833/256;
  UCA0MCTL= UCBRS1;
  UCA0CTL1&=~UCSWRST;
  IE2|=UCA0RXIE;
}
int main( void )
{
  uchar i=0;
  WDTCTL = WDTPW + WDTHOLD;
  BCSCTL1=CALBC1_16MHZ;
  BCSCTL2|=DIVS0;
  DCOCTL=CALDCO_16MHZ;
  Uart_Init();
  _EINT();
  while(1)
  {
    UCA0TXBUF=txbuf;
    i++;
    if(i==6)i=0;
    while(!(IFG2&UCA0TXIFG));
    IFG2&=~UCA0TXIFG;
  }
}
感覺網上大都是這樣程序,官方例程也不過如此!不知怎么,串口助手總是收到錯誤的數據。

當然,這是單步調試的結果,數組的兩次循環。最后基本穩定的是D0 40 A0 20 D0 41(對應上面的數組)。
感覺好像波特率不對,用其他頻率來產生波特率吧,一樣的結果。

好吧,測試一下接收吧,
接收中斷如下
#pragma vector=USCIAB0RX_VECTOR
__interrupt void RX_ISP(void)
{
  UCA0TXBUF=UCA0RXBUF;
  IFG2&=~UCA0RXIFG;
}
接收中斷打個斷點吧,好家伙,收到之后發出去竟然沒有問題,

這不是坑嘛,波特率是對的啊,接收再發送沒有問題。繼續改接收中斷服務函數

#pragma vector=USCIAB0RX_VECTOR
__interrupt void RX_ISP(void)
{
  UCA0TXBUF=0x03;
  IFG2&=~UCA0RXIFG;
}
接收還是沒有問題,把這個放到主函數運行吧,改主循環
while(1)
  {
    UCA0TXBUF=0x03;
    i++;
    if(i==6)i=0;
    while(!(IFG2&UCA0TXIFG));
    IFG2&=~UCA0TXIFG;
  }
繼續單步,串口助手收到A0,和剛才的錯誤數據一樣。從新編譯,煩了,這次全速吧,意外,

結果居然是對的,好吧,在試試全速->單步->全速,第一個全速可以接收正確的數據,然后單步數據出錯,在全速還是錯誤的數據。還是試試接收中斷來個單步,數據沒有問題,

搞不明白在主循環不能單步,在中斷卻行?先記下這個問題,只能慢慢解決了!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:81990 發表于 2015-6-4 09:52 | 只看該作者
很認真呀,加油歐
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表