找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3906|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

MSP430單片機(jī)接收PC機(jī)十六進(jìn)制數(shù)據(jù)后回傳至PC機(jī)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:226756 發(fā)表于 2017-8-10 21:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
MSP430單片機(jī)接收PC機(jī)十六進(jìn)制數(shù)據(jù)后回傳至PC機(jī)

單片機(jī)源程序如下:
  1. ******************************************************
  2. 程序功能:接收PC機(jī)十六進(jìn)制數(shù)據(jù)后回傳至PC機(jī)
  3. 數(shù)據(jù)格式:十六進(jìn)制

  4. 幀頭:FD

  5. 幀尾: FE


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


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


  13. /*************************************************
  14. 函數(shù)名稱:ConfigUart0
  15. 功    能:配置UART0,使用SMCLK,N.8.1, 9600
  16.           無校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)停止位,波特率9600
  17. 參    數(shù):無
  18. 返回值 :無
  19. **************************************************/
  20. void ConfigUart0()
  21. {
  22.     P3SEL |= 0x30;                            // 選擇P3.4和P3.5做UART通信端口
  23.     ME1 |= UTXE0 + URXE0;                     // 使能USART0的發(fā)送和接受
  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狀態(tài)機(jī)
  31.     IE1 |= URXIE0 + UTXIE0;                   // 使能USART0的收發(fā)中斷   
  32. }

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


  58. /*******************************************
  59. 函數(shù)名稱:UART0_RXISR
  60. 功    能:UART0的接收中斷服務(wù)函數(shù),在這里喚醒
  61.           CPU,使它退出低功耗模式
  62. 參    數(shù):無
  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; // 設(shè)置中斷標(biāo)志,進(jìn)入發(fā)送中斷程序
  78.         }
  79.     }
  80. }

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

  90. ……………………

  91. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

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


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

使用道具 舉報(bào)

沙發(fā)
ID:279187 發(fā)表于 2018-1-24 12:15 | 只看該作者
能給我發(fā)一份嗎?謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表