找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4068|回复: 5
打印 上一主题 下一主题
收起左侧

STM32(SI443 SI4463 SX1278扩频)+OLED+串口+按键+温湿度传感器测试源码

  [复制链接]
跳转到指定楼层
楼主
ID:316991 发表于 2018-4-26 14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序已经调通了,可以直接使用

stm32单片机源程序如下:
  1. /**********************(C) COPYRIGHT tongxinmao.com*****************************
  2. * 文件名                        : main.c
  3. * 作者                    : 10152203@qq.COM
  4. * 描述                                : 主文件        STM32F103C8T6+RF(SI443 SI4463 SX1278扩频)+OLED+串口+按键+温湿度传感器
  5. * 历史记录          : 暂无
  6. * 使用说明                        :按键S1 短按切换无线是否应答,长按清空收发计数  S2:单次发送  S3:连续发送50*n次
  7.                                           发送的数据为温湿度数据,接收方收到后显示
  8. ********************************************************************************/

  9. /*--------------------------- 头文件包含 --------------------------------------*/
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <string.h>
  13. #include "main.h"
  14. #include "function.h"
  15. #include "oled.h"
  16. #include "usart1.h"
  17. #include "gpio.h"
  18. #include "Delay.h"

  19. #include "rf.h"


  20. /*-----------------------------------------------------------------------------*/
  21. /*
  22. * #pragma diag_suppress 77,550,1294,1295
  23. * #pragma diag_suppress 870
  24. */
  25. #pragma diag_suppress 870
  26. /*
  27. * ------------------------------------------------------------------------
  28. * ------------------------------------------------------------------------
  29. * --------------------         宏定义              ------------------------------
  30. * ------------------------------------------------------------------------
  31. * ------------------------------------------------------------------------
  32. */

  33. #define CMD_TEMP_HUM        1
  34. #define CMD_ACK                        2


  35. /*
  36. * ------------------------------------------------------------------------
  37. * ------------------------------------------------------------------------
  38. * --------------------       变量定义              ------------------------------
  39. * ------------------------------------------------------------------------
  40. * ------------------------------------------------------------------------
  41. */


  42. /*
  43. * ------------------------------------------------------------------------
  44. * ------------------------------------------------------------------------
  45. * --------------------       函数声明              ------------------------------
  46. * ------------------------------------------------------------------------
  47. * ------------------------------------------------------------------------
  48. */





  49. void frameProcess( u8 *buf, u8 size )
  50. {
  51.         u8        cmd        = buf[0];
  52.         u8        len        = buf[1];

  53.         switch ( cmd )
  54.         {
  55.         case CMD_TEMP_HUM:
  56.                 if ( rfAck )
  57.                 {
  58.                         sendBuf[0]        = CMD_ACK;
  59.                         sendBuf[1]        = 0;
  60.                         RFSendData( sendBuf, 2 );
  61.                         msg( "回复应答..." );
  62.                 }
  63.                 /* 显示温湿度数据 */
  64.                 if ( len == 4 )
  65.                 {
  66.                         memcpy( &temp, buf + 2, 2 );
  67.                         memcpy( &hum, buf + 4, 2 );
  68.                         msg( "收到温湿度数据" );
  69.                 }
  70.                 break;

  71.         case CMD_ACK:
  72.                 /* 屏幕显示应答成功 */

  73.                 msg( "收到应答" );
  74.                 break;

  75.         default:
  76.                 break;
  77.         }
  78. }




  79. /**************************************************************
  80. * 函数名  : main()
  81. * 描述    : 主函数
  82. *************************************************************/
  83. int main( void )
  84. {
  85.         /* --配置系统主频为72MHz */
  86.         SystemInit();
  87.         Delay_InitConfig( 72 );


  88.         GPIOInit();            //GPIO初始化
  89.         OLED_Init();        //OLED初始化
  90.         Uart1Init();        //串口初始化用于输出调试信息 9600bps 8N1


  91.         RFInit();         //射频模块初始化
  92.         RFRxMode();         //进入接收模式
  93.         msg( "system start" );
  94.     getTempHum();  //获取温湿度数据
  95.          
  96.         while ( 1 )
  97.         {
  98.                 int len;

  99.                 keyProcess();  //按键检测处理
  100.         //    led_blink();   //led运行灯闪烁

  101.                 len = RFRevData( revBuf );          //接收无线数据
  102.                 if ( len > 0 )
  103.                 {
  104.                         frameProcess( revBuf, len ); //数据处理
  105.                 }

  106.                 if(rfContinueSend())
  107.                 {        
  108.                         Delay_ms( 2000 );         
  109.                 }

  110.                 OledDisplay();        //刷新OLED显示
  111.                  led_blink();
  112.         }
  113. }


  114. /*
  115. * ------------------------------------------------------------------------
  116. * ------------------------------------------------------------------------
  117. * --------------------     公有函数定义            ------------------------------
  118. * ------------------------------------------------------------------------
  119. * ------------------------------------------------------------------------
  120. */


  121. /* end of main.c -------------------------------------------------------------*/

复制代码

所有资料51hei提供下载:
STM32_SX1278 -smt.rar (305.18 KB, 下载次数: 152)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:278722 发表于 2018-11-29 16:29 | 只看该作者
下来看看
回复

使用道具 举报

板凳
ID:128321 发表于 2018-12-17 17:45 | 只看该作者
最近正在学习OLED
回复

使用道具 举报

地板
ID:723711 发表于 2020-4-11 22:43 | 只看该作者
看看,最近调试无线 ,发行 受不行
回复

使用道具 举报

5#
ID:727411 发表于 2020-4-12 11:07 | 只看该作者
正在学习OLED的显示,感谢分享。
回复

使用道具 举报

6#
ID:1023716 发表于 2023-2-9 18:45 | 只看该作者
下载下来试试,想必一定有很大的参考价值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表