找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stm8 dth22驱动代码

[复制链接]
跳转到指定楼层
楼主
ID:357425 发表于 2018-6-23 20:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm8 dth22代码

  1. #include "main.h"

  2. u8 CMD_rx_buf[8];   //命令缓冲区
  3. u8 DATA_tx_buf[14]; //返回数据缓冲区
  4. u8 CMD_ID = 0;  // 命令序号
  5. u8 Sensor_Type = 0; // 传感器类型编号
  6. u8 Sensor_ID = 0;   // 相同类型传感器编号
  7. u8 Sensor_Data[6];  // 传感器数据

  8. u8 Sensor_Data_Digital = 0; // 数字类型传感器数据
  9. u16 Sensor_Data_Analog = 0; // 模拟类型传感器数据   
  10. u16 Sensor_Data_Threshod = 0;// 模拟传感器阈值
  11.    

  12. void main(void)
  13. {
  14.   u8 i = 0;  
  15.   //初始化时钟,设置内部高速时钟为16M
  16.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  17.   //串口初始化
  18.   Uart1_Init();
  19.   //LED初始化
  20.    LED_Init();
  21.   //DHT22初始化
  22.    DHT22_Init();
  23.   //初始化数据帧(EE CC 0A 01 01 XX XX XX XX XX XX XX XX FF)
  24.    for(i = 0;i < 14;i++)
  25.         DATA_tx_buf[i] = 0;
  26.     for(i = 0;i < 8;i++)
  27.         CMD_rx_buf[i] = 0;
  28.    
  29.     Sensor_Type = 0x0A;
  30.     Sensor_ID = 1;
  31.    
  32.     CMD_ID = 1;
  33.    
  34.     DATA_tx_buf[0] = 0xEE;
  35.     DATA_tx_buf[1] = 0xCC;
  36.     DATA_tx_buf[2] = Sensor_Type;
  37.     DATA_tx_buf[3] = Sensor_ID;
  38.     DATA_tx_buf[4] = CMD_ID;
  39.     DATA_tx_buf[13] = 0xFF;
  40.    
  41.     delay_ms(1000);
  42.     while (1)
  43.     {
  44.         // 获取传感器数据
  45.         if(DHT22_Read())
  46.         {
  47.             Sensor_Data[2] = Humidity >> 8;
  48.             Sensor_Data[3] = Humidity&0xFF;
  49.             Sensor_Data[4] = Temperature >> 8;
  50.             Sensor_Data[5] = Temperature&0xFF;
  51.         }
  52.         
  53.         // 组合数据帧
  54.         for(i = 0;i < 6;i++)
  55.             DATA_tx_buf[5+i] = Sensor_Data[i];
  56.         
  57.         // 发送数据帧
  58.         UART1_SendString(DATA_tx_buf, 14);
  59.         LED_Toggle();
  60.         delay_ms(1000);
  61.     }
  62. }

  63. #ifdef USE_FULL_ASSERT

  64. /**
  65.   * @brief  Reports the name of the source file and the source line number
  66.   *   where the assert_param error has occurred.
  67.   * @param file: pointer to the source file name
  68.   * @param line: assert_param error line source number
  69.   * @retval None
  70.   */
  71. void assert_failed(uint8_t* file, uint32_t line)
  72. {
  73.   /* User can add his own implementation to report the file name and line number,
  74.      ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  75.   /* Infinite loop */
  76.   while (1)
  77.   {
  78.   }
  79. }
  80. #endif
复制代码


全部资料51hei下载地址:
DHT22练习 - 副本.zip (7.06 MB, 下载次数: 28)


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

使用道具 举报

沙发
ID:585455 发表于 2019-9-16 13:07 | 只看该作者
感謝您的分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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