久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

串口UART實(shí)現(xiàn)電腦發(fā)送數(shù)據(jù)當(dāng)430接收到數(shù)據(jù)后再發(fā)回電腦

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
串口UART實(shí)現(xiàn)電腦發(fā)送數(shù)據(jù)當(dāng)430接收到數(shù)據(jù)后再發(fā)回電腦


單片機(jī)源程序如下:
  1. #include<msp430g2553.h>
  2. #include  "UART_Global.h"

  3. unsigned  char  Rx_FIFO[RX_FIFO_SIZE]={0};    //UART接收FIFO數(shù)組
  4. unsigned  int  Rx_FIFO_DataNum=0;      //UART接收FIFO的“空滿”指示變量
  5. unsigned  int  Rx_FIFO_IndexR=0;        //UART接收FIFO的模擬“讀指針”變量
  6. unsigned  int  Rx_FIFO_IndexW=0;        //UART接收FIFO的模擬“寫指針”變量
  7. unsigned  char  Tx_FIFO[TX_FIFO_SIZE]={0};    //UART發(fā)送FIFO數(shù)組
  8. unsigned  int  Tx_FIFO_DataNum=0;      //UART發(fā)送FIFO的“空滿”指示變量
  9. unsigned  int  Tx_FIFO_IndexR=0;        //UART發(fā)送FIFO的模擬“讀指針”變量
  10. unsigned  int  Tx_FIFO_IndexW=0;        //UART 發(fā)送 FIFO 的模擬“寫指針”變量

  11. char Rx_FIFO_WriteChar(unsigned  char  Data)
  12. {
  13.         if(Rx_FIFO_DataNum==RX_FIFO_SIZE)  return(0);
  14.         //判斷FIFO是否已裝滿未讀數(shù)據(jù),如果裝滿返回0
  15.         __disable_interrupt();             //操作FIFO前一定要關(guān)總中斷
  16.         Rx_FIFO_DataNum++;                      //未讀取數(shù)據(jù)個(gè)數(shù)加一
  17.         Rx_FIFO[Rx_FIFO_IndexW]=Data;            //將數(shù)據(jù)寫入寫讀指針位置的FIFO數(shù)組
  18.         Rx_FIFO_IndexW++;                          //寫指針移位
  19.         if  (Rx_FIFO_IndexW>=RX_FIFO_SIZE)        //判斷指針是否越界
  20.         Rx_FIFO_IndexW=0;                    //寫指針循環(huán)歸零
  21.         __disable_interrupt();                         //恢復(fù)總中斷使能
  22.         return(1);               //返回成功
  23. }
  24. char Rx_FIFO_ReadChar(unsigned  char *Chr)
  25. {
  26.         if(Rx_FIFO_DataNum==0)  return(0);  //判斷FIFO是是否有未讀數(shù)據(jù),如果沒有返回0
  27.         __disable_interrupt();        //操作FIFO前一定要關(guān)總中斷
  28.         Rx_FIFO_DataNum --;        //待讀取數(shù)據(jù)個(gè)數(shù)減一
  29.         *Chr=Rx_FIFO[Rx_FIFO_IndexR];    //將讀指針位置的FIFO數(shù)據(jù)賦給指針?biāo)缸兞?br />
  30.         Rx_FIFO_IndexR++;         //讀指針移位
  31.         if  (Rx_FIFO_IndexR>=RX_FIFO_SIZE)    //判斷指針是否越界
  32.         Rx_FIFO_IndexR=0;       //讀指針循環(huán)歸零
  33.         __disable_interrupt();        //恢復(fù)總中斷使能
  34.         return(1);
  35. }
  36. void  Rx_FIFO_Clear()
  37. {
  38.         __disable_interrupt();          //操作FIFO前一定要關(guān)總中斷
  39.         Rx_FIFO_DataNum=0;          //FIFO中未讀取數(shù)據(jù)數(shù)目
  40.         Rx_FIFO_IndexR=0;           //FIFO中模擬讀指針清零
  41.         Rx_FIFO_IndexW=0;          //FIFO中模擬寫指針清零
  42.         __disable_interrupt();          //恢復(fù)總中斷使能
  43. }
  44. char Tx_FIFO_WriteChar(unsigned  char Data)
  45. {
  46.         if(Tx_FIFO_DataNum==TX_FIFO_SIZE)  return(0);
  47.         //判斷FIFO是否已裝滿未讀數(shù)據(jù),如果裝滿返回0
  48.         __disable_interrupt();                        //操作FIFO前一定要關(guān)總中斷
  49.         //-----“全新”一次發(fā)送數(shù)據(jù)必須手動(dòng)觸發(fā)Tx 中斷-----
  50.         if((Tx_FIFO_DataNum==0) &&( !(UCA0STAT & UCBUSY)))
  51.         //判斷是否為一次“全新”發(fā)送
  52.         IFG2 |=UCA0TXIFG;            //  手動(dòng)觸發(fā)一次
  53.         Tx_FIFO_DataNum++;                        //未讀取數(shù)據(jù)個(gè)數(shù)加一
  54.         Tx_FIFO[Tx_FIFO_IndexW]=Data;             //將數(shù)據(jù)寫入寫讀指針位置的FIFO數(shù)組
  55.         Tx_FIFO_IndexW++;                          //寫指針移位
  56.         if  (Tx_FIFO_IndexW  >= TX_FIFO_SIZE)          //判斷指針是否越界
  57.         Tx_FIFO_IndexW=0;                      //寫指針循環(huán)歸零
  58.         __disable_interrupt();                          //恢復(fù)總中斷使能
  59.         return(1);               //返回成功
  60. }
  61. char Tx_FIFO_ReadChar(unsigned  char *Chr)
  62. {
  63.         if(Tx_FIFO_DataNum==0) return(0);    //判斷FIFO是是否有未讀數(shù)據(jù),如果沒有返回0
  64.         __disable_interrupt();                  //操作FIFO前一定要關(guān)總中斷
  65.         Tx_FIFO_DataNum --;                  //待讀取數(shù)據(jù)個(gè)數(shù)減一
  66.         *Chr=Tx_FIFO[Tx_FIFO_IndexR];       //將讀指針位置的FIFO數(shù)據(jù)賦給指針?biāo)缸兞?br />
  67.         Tx_FIFO_IndexR++;                   //讀指針移位
  68.         if  (Tx_FIFO_IndexR>=TX_FIFO_SIZE)   //判斷指針是否越界
  69.         Tx_FIFO_IndexR=0;               //讀指針循環(huán)歸零
  70.         __disable_interrupt();                  //恢復(fù)總中斷使能
  71.         return(1);               //返回成功
  72. }
  73. void  Tx_FIFO_Clear()
  74. {
  75.         __disable_interrupt();             //操作FIFO前一定要關(guān)總中斷
  76.         Tx_FIFO_DataNum=0;              //FIFO中未讀取數(shù)據(jù)數(shù)目清零
  77.         Tx_FIFO_IndexR=0;                  //FIFO中模擬讀指針清零
  78.         Tx_FIFO_IndexW=0;               //FIFO中模擬寫指針清零
  79.         __disable_interrupt();              //恢復(fù)總中斷使能
  80. ……………………

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

所有資料51hei提供下載:
串口UART實(shí)現(xiàn)電腦發(fā)送數(shù)據(jù)當(dāng)430接收到數(shù)據(jù)后再發(fā)回電腦.rar (120.48 KB, 下載次數(shù): 42)


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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品久久久久久牛牛 | 狠狠色狠狠色综合系列 | 国产精品亚洲一区二区三区在线 | 欧美精品久久久久久久久老牛影院 | h视频免费在线观看 | 日本精品久久久一区二区三区 | 久草免费在线视频 | 黄色三级毛片 | 羞羞的视频免费在线观看 | 欧美日韩一区二区三区在线观看 | 国产精品久久久久久久免费大片 | 九九综合 | 欧美中文字幕在线观看 | 国产成人99久久亚洲综合精品 | 91精品国产综合久久福利软件 | 成人av一区 | 成人国产精品久久久 | 日本天天操 | 天天操操操操操 | 久久午夜剧场 | 国产视频导航 | 国产区在线 | 欧美日韩国产精品一区 | 看av网| 久久99蜜桃综合影院免费观看 | 在线观看成人 | heyzo在线| 一区二区三区久久久 | 国产精品一区免费 | 高清欧美性猛交xxxx黑人猛交 | 日韩午夜网站 | 中文字幕1区 | 久久美女网 | caoporn国产| 91精品一区二区三区久久久久久 | 日韩在线小视频 | 国产精品伦一区二区三级视频 | 日韩在线播放av | 国产免费xxx | 99视频精品 | 97视频在线免费 |