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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4331|回復: 2
打印 上一主題 下一主題
收起左側

Stm8S CC1101接收及發送源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:324601 發表于 2018-5-7 21:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
根據澤耀官方的STM8L101的例程移植的STM8S103 CC1101接收發送程序引腳有所變化,具體參見CC1101.h 和 SPI.h 的引腳定義

適用于澤耀及億佰特的CC1101 SPI 接口模塊,同理,改改就能適用于24L01模塊

單片機源程序如下:
  1. #define         __CC1101_TX_TEST__                        //**@@ 如果測試發送功能則需要定義該宏,如果測試接收則需要屏蔽該宏 **@@//
  2. //#define         __USE_SOFT_SPI_INTERFACE__                //**@@ 如果使用軟件SPI則需要定義該宏,反之如果使用硬件SPI則需要屏蔽該宏 **@@//


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

  5. const char *g_Ashining = "ashining";
  6. uint8_t g_TxMode = 0;
  7. uint8_t g_UartRxBuffer[ 100 ] = { 0 };
  8. uint8_t g_RF24L01RxBuffer[ 32 ] = { 0 };



  9. /**
  10.   * @brief :主函數
  11.   * @param :無
  12.   * @note  :無
  13.   * @retval:無
  14.   */
  15. int main( void )
  16. {       
  17.         uint8_t i = 0;

  18.         //串口初始化
  19.         drv_uart_init( 9600 );
  20.        
  21.         //LED初始化
  22.         drv_led_init( );
  23.        
  24.         //SPI初始化
  25.         drv_spi_init( );
  26.        
  27.         //CC1101初始化
  28.         CC1101_Init( );

  29.         
  30.         for( i = 0; i < 3; i++ )
  31.         {
  32.                 led_red_flashing( );
  33.                 led_green_flashing( );
  34.                 drv_delay_ms( 500 );
  35.         }
  36.        
  37. #ifdef        __CC1101_TX_TEST__               
  38. //=========================================================================================//       
  39. //*****************************************************************************************//
  40. //************************************* 發送 **********************************************//
  41. //*****************************************************************************************//
  42. //=========================================================================================//       
  43.        
  44.         //按鍵初始化
  45.         drv_button_init( );

  46.         while( 1 )       
  47.         {
  48.                 //模式切換
  49.                 if( BUTOTN_PRESS_DOWN == drv_button_check( ))
  50.                 {
  51.                         g_TxMode = 1 - g_TxMode;                //模式會在 TX_MODE_1( 0 ),TX_MODE_2( 1 )之間切換
  52.                        
  53.                         //狀態顯示清零
  54.                         led_green_off( );
  55.                         led_red_off( );
  56.                        
  57.                         if( TX_MODE_1 == g_TxMode )
  58.                         {
  59.                                 for( i = 0; i < 3; i++ )               
  60.                                 {
  61.                                         led_red_flashing( );        //固定發送模式,紅燈閃爍3次
  62.                                         drv_delay_ms( 300 );               
  63.                                 }
  64.                         }
  65.                         else
  66.                         {
  67.                                 for( i = 0; i < 6; i++ )
  68.                                 {
  69.                                         led_green_flashing( );        //串口發送模式,綠燈閃爍3次
  70.                                         drv_delay_ms( 300 );
  71.                                 }
  72.                         }
  73.                 }
  74.                
  75.                 //發送
  76.                 if( TX_MODE_1 == g_TxMode )
  77.                 {
  78.                         CC1101_Tx_Packet( (uint8_t *)g_Ashining, 8 , ADDRESS_CHECK );                //模式1發送固定字符,1S一包
  79.                         drv_delay_ms( 1000 );       
  80.                         led_red_flashing( );
  81.                         //drv_uart_tx_bytes("sending\r\n",9);
  82.                         printf("固定發送模式\r\n");
  83.                        
  84.                 }
  85.                 else
  86.                 {       
  87.                         //查詢串口數據
  88.                         //drv_uart_tx_bytes("uart...\r\n",9);
  89.                         printf("串口發送模式\r\n");
  90.                         i = drv_uart_rx_bytes( g_UartRxBuffer );
  91.                        
  92.                         if( 0 != i )
  93.                         {
  94.                                 CC1101_Tx_Packet( g_UartRxBuffer, i , ADDRESS_CHECK );
  95.                                 led_red_flashing( );
  96.                         }
  97.                 }
  98.         }
  99.        
  100. #else               
  101. //=========================================================================================//       
  102. //*****************************************************************************************//
  103. //************************************* 接收 **********************************************//
  104. //*****************************************************************************************//
  105. //=========================================================================================//       
  106.         {
  107.                
  108.                 //printf("接收數據模式");
  109.                 drv_uart_tx_bytes("receive\r\n",9);
  110.                 while( 1 )
  111.                 {
  112.                         CC1101_Clear_RxBuffer( );
  113.                         CC1101_Set_Mode( RX_MODE );
  114.                         i = CC1101_Rx_Packet( g_RF24L01RxBuffer );                //接收字節
  115.                         
  116.                         if( 0 != i )
  117.                         {
  118.                                 led_green_flashing( );
  119.                                 drv_uart_tx_bytes( g_RF24L01RxBuffer, i );        //輸出接收到的字節
  120.                         }
  121.                         drv_delay_ms(500);
  122.                         
  123.                 }
  124.         }       
  125. #endif
  126.        
  127. }

  128. #ifdef USE_FULL_ASSERT

  129. /**
  130.   * @brief  Reports the name of the source file and the source line number
  131.   *   where the assert_param error has occurred.
  132.   * @param file: pointer to the source file name
  133.   * @param line: assert_param error line source number
  134.   * @retval None
  135.   */
  136. void assert_failed(uint8_t* file, uint32_t line)
  137. {
  138.   /* User can add his own implementation to report the file name and line number,
  139.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  140.   /* Infinite loop */
  141.   while (1)
  142.   {
  143.   }
  144. }
  145. #endif

  146. /**
  147.   * @}
  148.   */
復制代碼

所有資料51hei提供下載:
C1101.rar (1.71 MB, 下載次數: 90)


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

使用道具 舉報

沙發
ID:186637 發表于 2018-10-16 16:43 | 只看該作者
謝謝分享!學習學習!
回復

使用道具 舉報

板凳
ID:618877 發表于 2019-10-2 21:21 來自手機 | 只看該作者
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久成人18免费网站 | 午夜电影日韩 | 久久久久国产一区二区三区 | 成人av一区 | 欧美一区二区大片 | 一区二区视频在线 | 中文字幕av网址 | 中文字幕三区 | 国产伦一区二区三区 | 中文字幕日韩一区二区 | 日韩高清不卡 | 黄色毛片免费 | 精品亚洲视频在线 | 欧美三级电影在线播放 | 成人a在线 | 亚洲欧美一区二区三区视频 | 成人午夜精品 | 成年人精品视频 | 人人艹人人爽 | 在线观看视频一区二区三区 | 一级黄色在线 | 91精产国品一二三区 | 国产成人网| 国产日韩欧美二区 | 手机日韩| 91精品久久久久久久久久入口 | 99国产精品视频免费观看一公开 | 欧美一级在线 | 久久久久久国产精品mv | 黄色大片免费网站 | 久久久精品一区二区三区 | www.伊人.com| 69性欧美高清影院 | 一区视频在线 | 成人在线播放网站 | 免费在线观看黄网站 | 日产精品久久久一区二区福利 | 日本天天操 | 一区二区三区四区电影视频在线观看 | 91高清视频在线 | 孰女乱色一区二区三区 |