当前位置: 首页 > news >正文

黄山网站建设公司线上平面设计哪家培训好

黄山网站建设公司,线上平面设计哪家培训好,做网站的都是什么专业毕业的,百度识图在线入口前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DHT11驱动文件 头文件 /*******************************************************************************Copyrig…前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DHT11驱动文件 头文件 /*******************************************************************************Copyright (c) [scl]。保留所有权利。******************************************************************************/ #ifndef F1XX_TEMPLATE_MODULE_DHT11_H #define F1XX_TEMPLATE_MODULE_DHT11_H#include sys_core.h/*** memberof input_mode_set 输入模式配置* memberof out_mode_set 输出模式配置* memberof send_data 发送数据* memberof us_delay 微秒延迟*/ typedef struct {void (*input_mode_set)(void);void (*out_mode_set)(void);void (*send_data)(uint32_t status);uint32_t (*read_data)(void);void (*us_delay)(uint32_t us); } DHT11_conf_t;typedef struct {uint8_t humi_int; //湿度的整数部分uint8_t humi_deci; //湿度的小数部分uint8_t temp_int; //温度的整数部分uint8_t temp_deci; //温度的小数部分uint8_t check_sum; //校验和 } DHT11_data_t;void DHT11_conf_set(DHT11_conf_t *cnf);bool DHT11_Driver_Init(void);DHT11_data_t *DHT11_Read_TH(void);#endif //F1XX_TEMPLATE_MODULE_DHT11_H 源文件 /*******************************************************************************Copyright (c) [scl]。保留所有权利。******************************************************************************/ #include dht11/module_dht11.h#define DHT11_RESET 0 #define DHT11_SET 1static DHT11_conf_t *dht11_conf_ptr NULL; static DHT11_data_t dht11_data; #define DHT11_OUT_0 dht11_conf_ptr-send_data(0) #define DHT11_OUT_1 dht11_conf_ptr-send_data(1)static uint8_t DHT11_ReadByte(void);static inline void us_delay(uint32_t us) {dht11_conf_ptr-us_delay(us); }static inline void ms_delay(uint32_t ms) {while (ms--) us_delay(1); }void DHT11_conf_set(DHT11_conf_t *cnf) {dht11_conf_ptr cnf; }bool DHT11_Driver_Init(void) {if (dht11_conf_ptr NULL) return false;/*输出模式设置*/dht11_conf_ptr-out_mode_set();/*输出高*/DHT11_OUT_1;return true; }/*** brief 读取DHT11 数据* return 不成功为NULL*/ DHT11_data_t *DHT11_Read_TH(void) {if (dht11_conf_ptr NULL) return NULL;/*输出模式*/dht11_conf_ptr-out_mode_set();/*主机拉低*/DHT11_OUT_0;/*延时18ms*/ms_delay(18);/*总线拉高 主机延时30us*/DHT11_OUT_1;us_delay(30); //延时30us/*主机设为输入 判断从机响应信号*/dht11_conf_ptr-input_mode_set();/*判断从机是否有低电平响应信号 如不响应则跳出响应则向下运行*/if (dht11_conf_ptr-read_data() DHT11_RESET) {/*轮询直到从机发出 的80us 低电平 响应信号结束*/while (dht11_conf_ptr-read_data() DHT11_RESET);/*轮询直到从机发出的 80us 高电平 标置信号结束*/while (dht11_conf_ptr-read_data() DHT11_SET);/*开始接收数据*/dht11_data.humi_int DHT11_ReadByte();dht11_data.humi_deci DHT11_ReadByte();dht11_data.temp_int DHT11_ReadByte();dht11_data.temp_deci DHT11_ReadByte();dht11_data.check_sum DHT11_ReadByte();/*读取结束引脚改为输出模式*/dht11_conf_ptr-out_mode_set();/*主机拉高*/DHT11_OUT_1;uint8_t result dht11_data.humi_int dht11_data.humi_deci dht11_data.temp_int dht11_data.temp_deci;/*检查读取的数据是否正确*/if (dht11_data.check_sum result) return dht11_data;}return NULL; }/** 从DHT11读取一个字节MSB先行*/ static uint8_t DHT11_ReadByte(void) {uint8_t i, temp 0;for (i 0; i 8; i) {/*每bit以50us低电平标置开始轮询直到从机发出 的50us 低电平 结束*/while (dht11_conf_ptr-read_data() DHT11_RESET);/*DHT11 以26~28us的高电平表示“0”以70us高电平表示“1”*通过检测 x us后的电平即可区别这两个状 x 即下面的延时*/us_delay(40); //延时x us 这个延时需要大于数据0持续的时间即可if (dht11_conf_ptr-read_data() DHT11_SET)/* x us后仍为高电平表示数据“1” */{/* 等待数据1的高电平结束 */while (dht11_conf_ptr-read_data() DHT11_SET);temp | (uint8_t) (0x01 (7 - i)); //把第7-i位置1MSB先行} else // x us后为低电平表示数据“0”{temp (uint8_t) ~(0x01 (7 - i)); //把第7-i位置0MSB先行}}return temp; } 测试配置 /*******************************************************************************Copyright (c) [scl]。保留所有权利。brief DHT11 温湿度模块配置******************************************************************************/#include app_conf.h#define APP_CONF_ENABLE_DHT11_CNF (1) #if APP_CONF_ENABLE_DHT11_CNF#include dht11/module_dht11.h#define DBG_ENABLE #define DBG_SECTION_NAME DHT11_CNF #define DBG_LEVEL DBG_LOG // DBG_LOG DBG_INFO DBG_WARNING DBG_ERROR#include sys_dbg.h /*-********************************************DHT11_CNF变量定义******************************************-*/ #define DS18B20_LINE PE6 static DHT11_conf_t dh11_conf; static stm_pin_define_t *dh11_pin_ptr NULL;static void out_mode_set(void) { stm32_pin_define_mode_set(dh11_pin_ptr, pin_mode_output); }static void input_mode_set(void) { stm32_pin_define_mode_set(dh11_pin_ptr, pin_mode_input); }static void send_data(uint32_t status) { stm32_pin_define_set(dh11_pin_ptr, status); }static uint32_t read_data(void) { return stm32_pin_define_read(dh11_pin_ptr); }/*-********************************************DHT11_CNF_pre_init******************************************-*/ static void DHT11_CNF_pre_init() {dh11_pin_ptr stm_get_pin(DS18B20_LINE);dh11_conf.us_delay bsp_us_delay_nop;dh11_conf.out_mode_set out_mode_set;dh11_conf.input_mode_set input_mode_set;dh11_conf.send_data send_data;dh11_conf.read_data read_data;DHT11_conf_set(dh11_conf); }sys_pre_init_export(DHT11_CNF, DHT11_CNF_pre_init);/*-********************************************DHT11_CNF_init******************************************-*/ static void DHT11_CNF_init() {DHT11_Driver_Init(); }sys_init_export(DHT11_CNF, DHT11_CNF_init);/*-***********************************************DHT11_CNF_after_init***************************************-*/ static void DHT11_CNF_after_init() {DHT11_data_t *th DHT11_Read_TH();if (th NULL) {LOG_W(DHT11_Read_TH ERROR);} else {LOG_D(humi:%d.%d RH temp: %d.%d℃, th-humi_int, th-humi_deci, th-temp_int, th-temp_deci);} }sys_after_init_export(DHT11_CNF, DHT11_CNF_after_init); /*-**************************************DHT11_CNF内部使用************************************************-*/ #endif //APP_CONF_ENABLE_DHT11_CNF
http://www.huolong8.cn/news/312633/

相关文章:

  • 公司建设网站需要什么全球最佳获奖包装设计
  • 如何查看网站域名信息wordpress 幻灯片主题设置
  • 网站建设内容策略茶网站设计素材下载
  • 做类似360手赚那样的网站wordpress保存远程图片大小
  • 如何用ps设计网站首页怎么建设门户网站
  • 网站首页没有权重杭州做网站优化
  • 信阳建设企业网站网站建设案例展示
  • 做放单网站河南大学学科建设处网站
  • 农村网站建设网络安全专业学什么
  • 陕西建设教育网站wordpress管理地址在哪里设置
  • 一元云购手机网站建设电子类网站建设需要多少钱
  • 做企业画册网站有wordpress jquery报错
  • 江苏威达建设有限公司网站wordpress网站恢复
  • 临沂在线上网站建设网站批量查询工具
  • 专业定制网站建设php 网站 项目
  • 点击立即进入正能量网站常州网站建设服务
  • 邢台专业网站建设价格网络营销策划模板
  • 网站建设中gif网上开店怎么注册
  • 打开一个网站为繁体字是怎么做的夫妻网络网站建设
  • 南阳网站备案网页编辑工具是什么
  • 网站安全 重要性关键词的优化方案
  • 电子商务网站建设题库企业网站建设与实现的论文
  • 企业网站建设服务公司推广口碑
  • 一套网站源码多少钱南京做网站优化公司
  • 墨刀做网站网页地名网站建设费用
  • 上海自助建站官网小程序注册的账号怎么注销
  • 怎么重新网站做301手机p2p网站
  • 网站开发公司怎么选择网站静态与动态
  • 四合一网站建设源码短视频培训
  • 网站建设公司的排名wordpress+简码使用