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

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

QQ登錄

只需一步,快速開始

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

SI4438 Directional硬件SPI STM8S105單片機(jī)IAR代碼分享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:191308 發(fā)表于 2018-11-23 19:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


單片機(jī)源程序如下:
  1. #include "stm8s.h"
  2. #include "data_base.h"
  3. #include "radio.h"
  4. #include "si446x_cmd.h"
  5. #include "gpio.h"
  6. #include "delay.h"
  7. #include "user.h"

  8.    
  9. uint8_t bRadio_Process();

  10. U8   bMain_IT_Status;
  11. uint8_t RFstate;


  12. extern uint8_t tx_data[];
  13. extern  volatile uint16_t  tick_timer;

  14. #define EnableMaster   0

  15. /*
  16. Demo程序流程:Master   EnableMaster=1,發(fā)送tx_data數(shù)據(jù)包后等待接收端ack數(shù)據(jù)包,若500ms后未接收到ack數(shù)據(jù)包超時(shí)處理,若接收到ack數(shù)據(jù)包LED閃爍指示
  17.               Slaver   EnableMaster=0,接收到tx_data數(shù)據(jù)包后發(fā)送ack數(shù)據(jù)包,發(fā)送完成后LED燈閃爍指示

  18. */

  19. void main(void)
  20. {
  21.   vInitializeHW();// Initialize the Hardware and Radio

  22. #if   EnableMaster
  23.    RFstate=RFLR_STATE_TX_INIT;
  24. #else   
  25.    RFstate=RFLR_STATE_RX_INIT;
  26. #endif
  27. while(1)
  28. {
  29.     bRadio_Process();
  30. }
  31. }


  32. uint8_t bRadio_Process()
  33. {
  34. switch(RFstate)
  35. {
  36.    case RFLR_STATE_RX_INIT://接收初始化
  37.    
  38.    GPIO_WriteLow(SI4463_TX_PORT,SI4463_TX_IO);
  39.    GPIO_WriteHigh(SI4463_RX_PORT,SI4463_RX_IO);//開關(guān)切換到接收通路
  40.    vRadio_StartRX(pRadioConfiguration->Radio_ChannelNumber, 0);
  41.    tick_timer=0;
  42.    RFstate=RFLR_STATE_RX_RUNNING;
  43.    break;
  44.    
  45.    case RFLR_STATE_RX_RUNNING://接收處理
  46.      bMain_IT_Status = bRadio_Check_Tx_RX();
  47.      if(bMain_IT_Status==SI446X_CMD_GET_INT_STATUS_REP_PH_PEND_PACKET_RX_PEND_BIT)
  48.      {
  49.        if(EnableMaster)
  50.        {
  51.         RFstate=RFLR_STATE_RX_ACK_DONE;
  52.        }
  53.        else
  54.        {
  55.          RFstate=RFLR_STATE_RX_DONE;
  56.        }
  57.      }
  58.      if(tick_timer>500)
  59.      {
  60.       RFstate=RFLR_STATE_RX_TIMEOUT;
  61.      }
  62.      
  63.    break;
  64.    
  65.    case RFLR_STATE_TX_INIT://發(fā)射客戶數(shù)據(jù)包初始化
  66.      GPIO_WriteHigh(SI4463_TX_PORT,SI4463_TX_IO);
  67.      GPIO_WriteLow(SI4463_RX_PORT,SI4463_RX_IO);//開關(guān)切換到發(fā)送通路
  68.      gSampleCode_SendVariablePacket();//打包發(fā)送客戶數(shù)據(jù)包
  69.      tick_timer=0;
  70.      RFstate=RFLR_STATE_TX_RUNNING;
  71.    break;
  72.    
  73.    
  74.    case RFLR_STATE_TX_ACK_INIT://發(fā)射ack數(shù)據(jù)包初始化
  75.      GPIO_WriteHigh(SI4463_TX_PORT,SI4463_TX_IO);
  76.      GPIO_WriteLow(SI4463_RX_PORT,SI4463_RX_IO);//開關(guān)切換到發(fā)送通路
  77.      vSampleCode_SendAcknowledge();//打包發(fā)送ACK數(shù)據(jù)包
  78.      tick_timer=0;
  79.      RFstate=RFLR_STATE_TX_RUNNING;
  80.    break;
  81.    
  82.    
  83.    case RFLR_STATE_TX_RUNNING://發(fā)射處理
  84.      bMain_IT_Status = bRadio_Check_Tx_RX();
  85.      if(bMain_IT_Status==SI446X_CMD_GET_INT_STATUS_REP_PH_PEND_PACKET_SENT_PEND_BIT)
  86.      {
  87.        if(EnableMaster)
  88.        {
  89.         RFstate=RFLR_STATE_TX_DONE;
  90.        }
  91.        else
  92.        {
  93.         RFstate=RFLR_STATE_TX_ACK_DONE;
  94.        }
  95.      }
  96.      if(tick_timer>500)
  97.      {
  98.       RFstate=RFLR_STATE_TX_TIMEOUT;
  99.      }
  100.    break;
  101.      
  102.    
  103.    case RFLR_STATE_RX_DONE://接收客戶數(shù)據(jù)包完成
  104.      
  105.        if(gSampleCode_StringCompare(customRadioPacket, tx_data,20)==TRUE)
  106.        {
  107.         RFstate=RFLR_STATE_TX_ACK_INIT;//收到正確數(shù)據(jù)包后發(fā)射ack數(shù)據(jù)包
  108.        }
  109.        else
  110.        {
  111.          RFstate=RFLR_STATE_RX_INIT;
  112.        }
  113.    break;
  114.    
  115.    case RFLR_STATE_RX_ACK_DONE://接收ack數(shù)據(jù)包完成
  116.       
  117.        if(gSampleCode_StringCompare(customRadioPacket, "ACK",3)==TRUE)
  118.        {
  119.           GPIO_WriteLow(RF_LED1_PORT,RF_LED1_IO);//LED指示燈閃爍
  120.           m928_delay(20);
  121.           GPIO_WriteHigh(RF_LED1_PORT,RF_LED1_IO);
  122.         }
  123.         
  124.         m928_delay(100);
  125.         RFstate=RFLR_STATE_TX_INIT;
  126.    break;
  127.       
  128.    case RFLR_STATE_TX_DONE://發(fā)射完客戶數(shù)據(jù)包
  129.      
  130.       RFstate=RFLR_STATE_RX_INIT;
  131.    break;
  132.    
  133.    case RFLR_STATE_TX_ACK_DONE://發(fā)射完ack數(shù)據(jù)包
  134.      
  135.         GPIO_WriteLow(RF_LED1_PORT,RF_LED1_IO);//LED燈閃爍
  136.         m928_delay(20);
  137.         GPIO_WriteHigh(RF_LED1_PORT,RF_LED1_IO);
  138.         
  139.         RFstate=RFLR_STATE_RX_INIT;
  140.       
  141.    break;
  142.    
  143.    case RFLR_STATE_TX_TIMEOUT://發(fā)射超時(shí)
  144.      
  145.        if(EnableMaster)
  146.        {
  147.         RFstate=RFLR_STATE_TX_INIT;
  148.        }
  149.        else
  150.        {
  151.         RFstate=RFLR_STATE_RX_INIT;
  152.        }
  153.    break;
  154.      
  155.    case RFLR_STATE_RX_TIMEOUT://接收超時(shí)
  156.      
  157.        if(EnableMaster)
  158.        {
  159.         RFstate=RFLR_STATE_TX_INIT;
  160.        }
  161.        else
  162.        {
  163.         RFstate=RFLR_STATE_RX_INIT;
  164.        }
  165.    break;
  166.    
  167.    default:break;
  168. }
  169. return RFstate;
  170. }
復(fù)制代碼

所有資料51hei提供下載:
SI4438 Directional 硬件spi STM8S105 IAR.rar (10.74 MB, 下載次數(shù): 34)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品www | 欧美一区视频 | 黄色av观看 | 国产美女一区二区 | 久久这里只有 | 亚洲第一视频 | 久久视频免费观看 | 成人深夜福利 | 欧美日韩亚洲一区 | 精品一区二区在线视频 | 偷拍自拍网址 | 中文字幕在线观看av | 日日骚av | 欧美日韩精品一区二区三区四区 | 免费99精品国产自在在线 | 91国产视频在线 | 美女福利视频网站 | 国产福利视频网站 | www.亚洲国产精品 | 久久精品亚洲成在人线av网址 | 91精品国产综合久久久密闭 | 久久久综合久久 | 成年人免费在线视频 | 免费人成激情视频在线观看冫 | 午夜伊人 | 亚洲网址在线观看 | av网站免费在线观看 | 中文字幕 国产 | 免费观看成人av | 羞羞视频在线观看 | 中文字幕亚洲免费 | 青娱乐自拍 | 一级全黄视频 | 99久久久国产精品免费消防器 | 韩日视频在线观看 | 日韩一区在线播放 | 国产精品自拍视频网站 | 亚洲一区在线免费观看 | 妖精视频一区二区三区 | 久久伊人青青草 | 国产一级片免费看 |