欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: MSP430單片機接收PC機十六進制數據后回傳至PC機 [打印本頁]

作者: ink    時間: 2017-8-10 21:41
標題: MSP430單片機接收PC機十六進制數據后回傳至PC機
MSP430單片機接收PC機十六進制數據后回傳至PC機

單片機源程序如下:
  1. ******************************************************
  2. 程序功能:接收PC機十六進制數據后回傳至PC機
  3. 數據格式:十六進制

  4. 幀頭:FD

  5. 幀尾: FE


  6. *******************************************************/
  7. #include <msp430x14x.h>


  8. unsigned char RecBuf[255]; //接收數據緩存
  9. unsigned char *SDat;     //指向要發送的數據
  10. unsigned char Rindex;      //接收數據計數
  11. unsigned char Tindex;      //發送數據計數
  12. unsigned char SendLen;     //發送數據長度


  13. /*************************************************
  14. 函數名稱:ConfigUart0
  15. 功    能:配置UART0,使用SMCLK,N.8.1, 9600
  16.           無校驗,8個數據位,1個停止位,波特率9600
  17. 參    數:無
  18. 返回值 :無
  19. **************************************************/
  20. void ConfigUart0()
  21. {
  22.     P3SEL |= 0x30;                            // 選擇P3.4和P3.5做UART通信端口
  23.     ME1 |= UTXE0 + URXE0;                     // 使能USART0的發送和接受
  24.     UCTL0 |= CHAR;                            // 選擇8位字符
  25.    
  26.     UTCTL0 |= SSEL1;                          // UCLK = SMCLK
  27.     UBR00 = 0xD0;                             // 波特率9600
  28.     UBR10 = 0x00;                             //
  29.     UMCTL0 = 0x40;                            // Modulation
  30.     UCTL0 &= ~SWRST;                          // 初始化UART狀態機
  31.     IE1 |= URXIE0 + UTXIE0;                   // 使能USART0的收發中斷   
  32. }

  33. /********************主函數********************/
  34. void main(void)
  35. {
  36.     unsigned int i;
  37.    
  38.     WDTCTL = WDTPW + WDTHOLD;     // 關閉看門狗
  39.     BCSCTL1 &= ~XT2OFF;           //使TX2有效,TX2上電默認是關閉的
  40.     do
  41.     {
  42.       IFG1 &= ~OFIFG;             //清除振蕩器失效標志
  43.       for(i=0xff;i>0;i--);        //延時,待穩定
  44.     }
  45.     while((IFG1 & OFIFG)!=0);     //若振蕩器失效標志有效
  46.     BCSCTL2 |= SELM1;             //使MCLK=XT2
  47.     BCSCTL2 |= SELS+DIVS1;        //SMCLK=XT2,4分頻,即2MHZ
  48.    
  49.     BoardConfig(0xb8);            // 關閉數碼管、流水燈和電平轉換
  50.     ConfigUart0();                //配置UART0
  51.     _EINT();                      //打開全局中斷
  52.       
  53.     while(1)
  54.     {
  55.         LPM1;
  56.     }
  57. }


  58. /*******************************************
  59. 函數名稱:UART0_RXISR
  60. 功    能:UART0的接收中斷服務函數,在這里喚醒
  61.           CPU,使它退出低功耗模式
  62. 參    數:無
  63. 返回值 :無
  64. ********************************************/
  65. #pragma vector = UART0RX_VECTOR
  66. __interrupt void UART0_RXISR(void)
  67. {
  68.     RecBuf[Rindex++] = RXBUF0;
  69.     if(RecBuf[Rindex-1]==0xfe) //接收完畢
  70.     {
  71.         SendLen = Rindex;
  72.         Rindex=0;
  73.         if(RecBuf[0]==0xfd) //幀頭正確
  74.         {
  75.             LPM1_EXIT;
  76.             SDat = RecBuf;
  77.             IFG1 |= UTXIFG0; // 設置中斷標志,進入發送中斷程序
  78.         }
  79.     }
  80. }

  81. /*******************************************
  82. 函數名稱:UART0_TXISR
  83. 功    能:UART0的發送中斷服務函數
  84. 參    數:無
  85. 返回值 :無
  86. ********************************************/
  87. #pragma vector = UART0TX_VECTOR
  88. __interrupt void UART0_TXISR(void)
  89. {

  90. ……………………

  91. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
MSP430單片機接收PC機十六進制數據后回傳至PC機.zip (1.46 KB, 下載次數: 13)



作者: mxh123456    時間: 2018-1-24 12:15
能給我發一份嗎?謝謝




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1