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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

SI4438 STM8L101收發(fā)源程序與說明資料下載

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:310219 發(fā)表于 2018-4-17 17:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
SI4438_STM8 Demo 程序說明文檔
工程說明
1、 Demo 工程是基于 Stm8L101 單片機(jī)在 STVD 平臺下對 SI4438 無線模塊的開發(fā)例程,用戶可在此基礎(chǔ)上加強(qiáng)對 SI4438 的理解,也可在此基礎(chǔ)上進(jìn)行移植以便對 SI4438模塊進(jìn)行2 次開發(fā)。
2、 Demo工程主要實現(xiàn)兩個功能(TX/RX) :
一、發(fā)送功能:模塊配置為發(fā)送功能,在發(fā)送模式 1,每秒發(fā)送一次固定字符串
“ashining”;在發(fā)送模式2,通過串口發(fā)送自定義數(shù)據(jù) 。
發(fā)送模式1 和發(fā)送模式2通過按鍵切換。
二、接收功能:模塊配置為接收功能,接收數(shù)據(jù)并通過串口將接收到的數(shù)據(jù)輸出,串口波特率默認(rèn)配置為9600。
3、 Demo程序提供了硬件 SPI接口和軟件模擬 SPI接口 (基于C52 的Demo程序只有軟件模擬SPI 接口),用戶在移植時可根據(jù)不同的PCB布局和實際應(yīng)用需求進(jìn)行選擇。
4、 Demo程序開始運行時,兩個LED燈會閃爍3個周期(一亮一滅為一個周期) ,代表無線模塊已經(jīng)初始化完成處于發(fā)送狀態(tài)或接收狀態(tài)。如果上電兩個 LED沒有正常閃爍,說明無線模塊初始化失敗或未檢測到無線模塊, 建議斷電重新插拔芯片再上電。  
工程配置:
1、 發(fā)送功能和接收功能的選擇切換:Demo 工程只需經(jīng)過簡單的配置修改就可以在發(fā)送功能和接收功能之間進(jìn)行切換,采用這種編寫方式的目的是為了讓用戶更加容易理解SI4438 無線模塊發(fā)送和接收功能的操作方式到底有何不同, 讓用戶更容易掌握對無線模塊的操作并進(jìn)行2 次開發(fā)。 發(fā)送和接收功能切換方法(以從默認(rèn)的發(fā)送功能切換到接收功能為例) :解壓Demo工程壓縮包, 在Demo_SI4438_Stm8L101\Project_SI4438\Source_Files\app\inc文件夾下打開main.h 頭文件(或者通過開發(fā)軟件打開工程找到 main.h) ,該頭文件在包含其他相關(guān)頭文件后,便是關(guān)于工程配置的宏定義,第一個宏定義為發(fā)送功能和接收功能選擇切換使用的宏定義。第一個宏定義為#define __SI4438_TX_TEST__,保留該宏定義工程就被配置成發(fā)送功能 (默認(rèn)工程配置為發(fā)送功能,即保留了該宏定義) ,通過屏蔽該宏定義(在  #define  前加“//”),可將工程由默認(rèn)的發(fā)送功能配置成接收功能。
2、 硬件 SPI 接口和軟件模擬 SPI 接口的切換方法:切換方法同發(fā)送、接收功能的切換方法一致,main.h中第二個宏定義為#define __USE_SOFT_SPI_INTERFACE,屏蔽該宏定義為選擇硬件 SPI接口(工程默認(rèn)配置為選擇硬件SPI接口) ,保留該宏定義為選擇軟件模擬 SPI接口。   

注:在修改工程配置后,需要重新編譯再下載修改才會起效。
     SI4463和SI4438 程序除了配置頭文件不一樣,其他一樣。

開發(fā)環(huán)境:
        1、優(yōu)化選項選擇默認(rèn)值,即不做不修改。
2、Editor -> Tab size  推薦設(shè)置為4,有利于工程中代碼和注釋的對齊。

stm8l101 收發(fā)程序,26M晶振。

單片機(jī)源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @author  澤耀科技 ASHINING
  4.   * @version V3.0
  5.   * @date    2016-10-08
  6.   * @brief   主函數(shù)C文件
  7.   ******************************************************************************
  8.   * @attention
  9.   ******************************************************************************
  10.   */

  11. #include "main.h"                                                        //main.h 中含有TX/RX、軟件SPI/硬件SPI選擇配置選項

  12. const char *g_Ashining = "ashining";
  13. uint8_t g_TxMode = 0, g_UartRxFlag = 0;
  14. uint8_t g_UartRxBuffer[ 64 ] = { 0 };
  15. uint8_t g_SI4463ItStatus[ 9 ] = { 0 };
  16. uint8_t g_SI4463RxBuffer[ 64 ] = { 0 };

  17. /**
  18.   * @brief :主函數(shù)
  19.   * @param :無
  20.   * @note  :無
  21.   * @retval:無
  22.   */
  23. int main( void )
  24. {       
  25.         uint16_t i = 0;

  26.         //串口初始化 波特率默認(rèn)設(shè)置為9600
  27.         drv_uart_init( 9600 );
  28.        
  29.         //LED初始化
  30.         drv_led_init( );
  31.        
  32.         //SPI初始化
  33.         drv_spi_init( );
  34.        
  35.         //SI4463初始化
  36.         SI446x_Init( );
  37.        
  38.         led_red_off( );                                        //默認(rèn)LED燈全為滅
  39.         led_green_off( );
  40.         for( i = 0; i < 6; i++ )                //SI4463初始化完成,兩個LED同時閃爍3個周期
  41.         {
  42.                 led_red_flashing( );
  43.                 led_green_flashing( );
  44.                 drv_delay_ms( 500 );
  45.         }
  46.                
  47.        
  48. #ifdef        __SI4438_TX_TEST__               
  49. //=========================================================================================//       
  50. //*****************************************************************************************//
  51. //************************************* 發(fā)送 **********************************************//
  52. //*****************************************************************************************//
  53. //=========================================================================================//       
  54.        
  55.         //按鍵初始化
  56.         drv_button_init( );                                //Demo程序中,只有在發(fā)送時才會使用按鍵
  57.        
  58.         while( 1 )       
  59.         {
  60.                 //模式切換
  61.                 //Demo程序默認(rèn)為發(fā)送模式1,即發(fā)送固定字符串“ashining”,可以通過按鍵切換到發(fā)送模式2,即通過串口發(fā)送數(shù)據(jù),按鍵的作用就是切換發(fā)送模式1 2
  62.                 //如果在程序移植過程中不需要兩種發(fā)送模式,刪除下面 if 語句程序塊和按鍵初始化程序即可

  63.                 if( BUTOTN_PRESS_DOWN == drv_button_check( ))        //檢測按鍵動作
  64.                 {
  65.                         g_TxMode = 1 - g_TxMode;                //在TX_MODE_1( 0 ),TX_MODE_2( 1 )之間切換
  66.                        
  67.                         //清LED狀態(tài)
  68.                         led_green_off( );
  69.                         led_red_off( );
  70.                        
  71.                         if( TX_MODE_1 == g_TxMode )
  72.                         {
  73.                                 for( i = 0; i < 6; i++ )                //切換到模式1 發(fā)送固定“ashining”固定字符串
  74.                                 {
  75.                                         led_red_flashing( );       
  76.                                         drv_delay_ms( 500 );               
  77.                                 }
  78.                         }
  79.                         else
  80.                         {
  81.                                 for( i = 0; i < 6; i++ )                //切換到模式2 通過串口發(fā)送數(shù)據(jù)
  82.                                 {
  83.                                         led_green_flashing( );       
  84.                                         drv_delay_ms( 500 );
  85.                                 }
  86.                         }
  87.                 }
  88.                
  89.                 //如果在程序移植過程中不需要兩種發(fā)送模式,刪除上面 if 語句程序塊和按鍵初始化程序即可
  90.                 //模式切換
  91.                

  92.                 //模式1 1S發(fā)送“ashining”一次
  93.                 if( TX_MODE_1 == g_TxMode )
  94.                 {
  95.                         //動態(tài)數(shù)據(jù)長度
  96.                         #if PACKET_LENGTH == 0
  97.                                 SI446x_Send_Packet( (uint8_t *)g_Ashining, 8, 0, 0 );
  98.                         #else
  99.                                 SI446x_Send_Packet( (uint8_t *)g_Ashining, PACKET_LENGTH, 0, 0 );
  100.                         #endif
  101.                         drv_delay_ms( 1000 );       
  102.                         led_red_flashing( );                        //1S發(fā)送一次
  103.                 }
  104.                 else        //模式2 外部通過串口發(fā)送數(shù)據(jù)到單片機(jī),單片機(jī)通過SI4463將數(shù)據(jù)發(fā)送出去
  105.                 {       
  106.                         //輪訓(xùn)接收串口數(shù)據(jù)
  107.                         i = drv_uart_rx_bytes( g_UartRxBuffer );
  108.                        
  109.                         if( 0 != i )
  110.                         {
  111.                                 if( 17 < i )
  112.                                 {
  113.                                         i = 0;                //一次不超過17個字節(jié)
  114.                                 }
  115.                                 #if PACKET_LENGTH == 0
  116.                                         SI446x_Send_Packet( (uint8_t *)g_UartRxBuffer, i, 0, 0 );
  117.                                 #else
  118.                                         SI446x_Send_Packet( (uint8_t *)g_UartRxBuffer, PACKET_LENGTH, 0, 0 );
  119.                                 #endif
  120.                                 led_red_flashing( );
  121.                         }
  122.                 }
  123.         }
  124.        
  125. #else               
  126. //=========================================================================================//       
  127. //*****************************************************************************************//
  128. //************************************* 接收 **********************************************//
  129. //*****************************************************************************************//
  130. //=========================================================================================//       
  131.        
  132.         while( 1 )
  133.         {
  134.                 SI446x_Interrupt_Status( g_SI4463ItStatus );                //查詢中斷狀態(tài)
  135.                
  136.                 if( g_SI4463ItStatus[ 3 ] & ( 0x01 << 4 ))
  137.         {
  138.                         i = SI446x_Read_Packet( g_SI4463RxBuffer );                //讀接收到的數(shù)據(jù)
  139.                         if( i != 0 )
  140.                         {
  141.                                 led_green_flashing( );
  142.                                 drv_uart_tx_bytes( g_SI4463RxBuffer,i );        //串口輸出SI4463接收到的數(shù)據(jù)
  143.                         }
  144.                
  145.                         SI446x_Change_Status( 6 );
  146.                         while( 6 != SI446x_Get_Device_Status( ));
  147.                         SI446x_Start_Rx(  0, 0, PACKET_LENGTH,0,0,3 );
  148. ……………………

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


所有資料51hei提供下載:
Demo_SI4438_Stm8L101.zip (699.33 KB, 下載次數(shù): 105)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:586493 發(fā)表于 2019-7-18 17:13 | 只看該作者
下載來看看
回復(fù)

使用道具 舉報

板凳
ID:206350 發(fā)表于 2021-4-20 22:32 | 只看該作者
為樓主點贊,支持分享~~~
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久精品 | 欧美日韩电影一区二区 | 亚洲高清在线观看 | 日本视频一区二区 | 日日干日日| 国产黄色av网站 | 日韩一区二区在线视频 | 伊人免费在线 | 国产精品精品视频一区二区三区 | 久久机热| 亚洲高清视频一区 | 91精品国产综合久久福利软件 | 午夜视频在线观看视频 | 欧美乱码精品一区二区三区 | 国产精品久久久久久模特 | 91免费在线视频 | 国产人成精品一区二区三 | 精品久久久久久亚洲精品 | 麻豆精品一区二区三区在线观看 | 91精品国产综合久久久久久丝袜 | 日韩区| 亚洲欧美综合网 | 国产成人精品午夜 | 国产精品欧美大片 | 欧美亚洲激情 | 五月天激情电影 | 欧美精品久久久久 | 国产欧美日韩精品在线观看 | 亚洲在线免费 | 一级片视频免费 | 99精品久久 | www.亚洲区 | 黄色毛片免费视频 | 国产伦精品一区二区三区在线 | 成人亚洲在线 | 啪啪综合网 | 国产一区二区三区久久久久久久久 | 奇米四色影视 | 蜜桃精品在线 | 亚洲第一网站 | 日韩中文字幕一区 |