找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32简单发信息测试 -简单接收指令返回数据 - 获取信号强度

[复制链接]
跳转到指定楼层
楼主
ID:524135 发表于 2020-5-21 01:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口通讯实验例程
  1. #include "stm32f10x.h"
  2. #include "led.h"  
  3. #include "usart.h"  
  4. #include "lcd_2.6ips.h"
  5. #include "capture.h"
  6. #include "stdio.h"
  7. #include "delay.h"
  8. #include "key.h"  
  9. #include "adc.h"
  10. #include "bsp_dht11.h"
  11. #include "bsp_ds18b20.h"
  12. #include "usart4.h"
  13. #include "stdlib.h"
  14. #include "string.h"
  15. #include "simxx.h"
  16. #include "SimUi.h"
  17. int main(void)
  18. {
  19.         u8 Hum[20]={0},Temp[20]={0},WATER_TEMP[10]={0};
  20.         u8 MQ[20]={0},vcc[20]={20};
  21.         u8 send_flag=0;
  22.         DHT11_Data_TypeDef data;
  23.         u8 led_flag=0;
  24.         Delay_init();
  25.         LED_Init();                // LED初始化
  26.         LCD_Init();                // LCD初始化
  27.         time7_init();
  28.         time7_set_timeout(10);
  29.         Usart_Config();// 串口初始化
  30.         DHT11_Init();
  31.         DS18B20_Init();
  32.         USART2_Config();
  33.         Adc_Init();
  34.         SimUi_InIt();
  35.         USART2_printf(USART2,"串口二测试\r\n");
  36.         USART2_printf(USART2,"初始化中..............\r\n");
  37.         LCD_Clear();        // 清屏
  38.         while(1)
  39.         {       
  40.        
  41.                 if(sigRun[0]>sigRun[1])
  42.                 {
  43.                         if(Simxx_Signal())
  44.                         {
  45.                                 LCD_DisplayString( 0,200 ,(u8 *)"            ");  
  46.                                 LCD_DisplayString( 0,200 ,(u8 *)"Signal: Strong");
  47.                        
  48.                         }
  49.                         else
  50.                         {
  51.                                 LCD_DisplayString( 0,200 ,(u8 *)"            ");
  52.                                 LCD_DisplayString( 0,200 ,(u8 *)"Signal: Weak");
  53.                         }
  54.                         sigRun[0]=0;
  55.                 }
  56.                
  57.                
  58.                 if(MQ_9Run[0]>MQ_9Run[1])
  59.                 {
  60.                         sprintf((char *)MQ,"harmful=%d%%",(Get_Adc(1)*100/4096));//获得某个通道值
  61.                         LCD_DisplayString( 0,120 ,MQ);
  62.                         sprintf((char *)vcc,"WorkVcc=%.2fV",Get_Adc(4)*(3.3/4096));//获得某个通道值
  63.                         LCD_DisplayString( 0,80 ,vcc);
  64.                         MQ_9Run[0]=0;
  65.                 }       
  66.                
  67.                 if(Dht11_Run[0]>Dht11_Run[1])
  68.                 {
  69.                         DHT11_Read_TempAndHumidity (&data);
  70.                         sprintf((char *)Hum,"Hum=%d.%d%%",data.humi_int,data.humi_deci);
  71.                         sprintf((char *)Temp,"Temp=%d.%dC",data.temp_int,data.temp_deci);
  72.                         LCD_DisplayString( 0,0 ,Hum);
  73.                         LCD_DisplayString( 0,40 ,Temp);
  74.                         Dht11_Run[0]=0;
  75.                 }
  76.                 if(DS18B20_Run[0]>DS18B20_Run[1])
  77.                 {
  78.                   sprintf((char *)WATER_TEMP,"WaterTemp=%.2fC",DS18B20_GetTemp_SkipRom ());
  79.                         LCD_DisplayString( 0,160 ,WATER_TEMP);
  80.                         DS18B20_Run[0]=0;
  81.                 }
  82.                 if(LED_Run[0]>LED_Run[1])
  83.                 {
  84.                        
  85.                         led_flag^=1;
  86.                         LED1_ST(led_flag);
  87.                         LED_Run[0]=0;
  88.                 }
  89.                 if(Simxx_Read_Nes())
  90.                 {
  91.                         send_flag=0;
  92.                         if(send_flag==0)
  93.                         {
  94.                                 USART2_printf(USART2,"发送数据\r\n");
  95.                                 send_flag=1;
  96.                                 send_data(data.humi_int,data.humi_deci,data.temp_int,\
  97.                                 data.temp_deci,DS18B20_GetTemp_SkipRom(),(Get_Adc(1)*100/4096));
  98.                         }
  99.                 }
  100.                
  101.                 if(IrRun[0]>IrRun[1])
  102.                 {
  103.                         USART2_printf(USART2,"进入休眠\r\n");
  104.                         GPIO_ResetBits(LCD_BL_PORT,LCD_BL_PIN);
  105.                         if(KEY_Scan())
  106.                         {
  107.                                 USART2_printf(USART2,"退出\r\n");
  108.                                 IrRun[0]=0;
  109.                                 GPIO_SetBits(LCD_BL_PORT,LCD_BL_PIN);                        //开启LCD背光       
  110.                         }
  111.                 }
  112.                
  113.                
  114.                 Delay_ms(10);                       
  115.         }
  116. }
复制代码

简单发信息测试 -简单接收指令返回数据 - 获取信号强度.7z

314.99 KB, 下载次数: 4, 下载积分: 黑币 -5

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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