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

网站meta网页描述网站的推广费用

网站meta网页描述,网站的推广费用,中国廉政文化建设网站,WordPress会话有效时间1、STM32CubeMx配置IO口 因为DS18B20是单总线#xff0c;数据接收发送都是这根线#xff0c;所以单片机配置为开漏上拉输出。 2、定时器配置 因为DS18B20对时序要求比较严格#xff0c;建议用定时器延时获得微秒延时函数。 总线为48M#xff0c;分频48#xff0c;获得1…1、STM32CubeMx配置IO口 因为DS18B20是单总线数据接收发送都是这根线所以单片机配置为开漏上拉输出。 2、定时器配置 因为DS18B20对时序要求比较严格建议用定时器延时获得微秒延时函数。 总线为48M分频48获得1us定时时基。 3、头文件 #ifndef __DS18B20_H #define __DS18B20_H#include main.h// 定义DS18B20相关命令 #define DS18B20_CMD_SKIP_ROM 0xCC #define DS18B20_CMD_CONVERT_T 0x44 #define DS18B20_CMD_READ_SCRATCHPAD 0xBEvoid DS18B20_Init(void); uint8_t DS18B20_Reset(void); void DS18B20_StartConv(void); float DS18B20_GetTemp(void);#endif 4、C文件 #include ds18b20.h #include tim.h#define DS18B20_Set(x) HAL_GPIO_WritePin(DS18B20_GPIO_Port, DS18B20_Pin, (GPIO_PinState)(x)) #define DS18B20_Get() HAL_GPIO_ReadPin(DS18B20_GPIO_Port, DS18B20_Pin)void DS18B20_WriteByte(uint8_t byte); uint8_t DS18B20_ReadByte(void);/***************************************************************************** * 说明DS18B20的微秒延时函数 * 输入_usTime时间 * 输出无 *****************************************************************************/ static void DS18B20_DelayUs(uint16_t _usTime) {__HAL_TIM_SetCounter(htim1,0);__HAL_TIM_ENABLE(htim1);while(__HAL_TIM_GetCounter(htim1) _usTime);__HAL_TIM_DISABLE(htim1); }/***************************************************************************** * 说明复位并检测DS18B20的存在 * 主机和DS18B20做任何通讯前都需要对其初始化。 * 初始化期间总线控制器拉低总线并保持480us以上挂在总线上的器件将被复位 * 然后释放总线等到15-60us此时18B20将返回一个60-240us之间的低电平存在信号。 * 输入无 * 输出1存在0不存在 *****************************************************************************/ uint8_t DS18B20_Reset(void) {uint8_t presence 0;// 拉低总线DS18B20_Set(0);DS18B20_DelayUs(600);// 释放总线DS18B20_Set(1);DS18B20_DelayUs(60);// 检测DS18B20响应presence DS18B20_Get();DS18B20_DelayUs(240);return !presence; }/***************************************************************************** * 说明复位DS18B20* 输入无 * 输出无 *****************************************************************************/ void DS18B20_Init(void) {// 复位DS18B20DS18B20_Reset();// 发送跳过ROM命令DS18B20_WriteByte(DS18B20_CMD_SKIP_ROM); }/***************************************************************************** * 说明发送一个字节给DS18B20 * 1.总线控制器要产生一个写时序必须将总线拉低最少1us * 2.产生写0时序时总线必须保持低电平60~120us之间然后释放总线 * 3.产生写1时序时在总线产生写时序后的15us内允许把总线拉高。 * 4.注意2次写周期之间至少间隔1us * 输入无 * 输出无 *****************************************************************************/ void DS18B20_WriteByte(uint8_t byte) {for (uint8_t i 0; i 8; i){// 发送低位DS18B20_Set(0);DS18B20_DelayUs(2);// 发送高位根据byte的第i位来决定if (byte (1 i)){DS18B20_Set(1);}DS18B20_DelayUs(60);// 释放总线DS18B20_Set(1);} }/***************************************************************************** * 说明从DS18B20读取一个字节 * 1.总线控制器要产生一个读时序必须将总线拉低至少1us * 2.然后释放总线在读信号开始后15us内总线控制器采样总线数据读一位数据至少保持在60us以上。 * 3.注意2次读周期之间至少间隔1us * 输入无 * 输出无 *****************************************************************************/ uint8_t DS18B20_ReadByte(void) {uint8_t byte 0;for (uint8_t i 0; i 8; i){// 发送低位DS18B20_Set(0);DS18B20_DelayUs(2);// 释放总线DS18B20_Set(1);DS18B20_DelayUs(8);// 读取高位数据if (DS18B20_Get()){byte | (1 i);}DS18B20_DelayUs(50);}return byte; }/***************************************************************************** * 说明启动DS18B20转换 * 输入无 * 输出无 *****************************************************************************/ void DS18B20_StartConv(void) {DS18B20_Init();// 发送温度转换命令DS18B20_WriteByte(DS18B20_CMD_CONVERT_T); }/***************************************************************************** * 说明读取DS18B20温度 * 1.温度精度及转换时间表 -------------------------------------- R1 R0 精度 最大转换时间 温度LSB -------------------------------------- 0 0 9bit 93.75ms 0.5℃ 0 1 10bit 187.5ms 0.25℃ 1 0 11bit 375ms 0.125℃ 1 1 12bit 750ms 0.0625℃ -------------------------------------- * 输入无 * 输出浮点型温度数据 *****************************************************************************/ float DS18B20_GetTemp(void) {// 复位DS18B20并跳过ROMDS18B20_Init();// 发送读取寄存器命令DS18B20_WriteByte(DS18B20_CMD_READ_SCRATCHPAD);// 读取温度数据uint8_t tempLow DS18B20_ReadByte();uint8_t tempHigh DS18B20_ReadByte();// 计算温度值int16_t temp (tempHigh 8) | tempLow;float temperature (float)temp / 16.0f;/*0.0625℃*/return temperature; } 5、使用方法 使用“void DS18B20_StartConv(void)”函数启动转换因为转换时间需要750ms12Bit精度所以隔1秒后使用“float DS18B20_GetTemp(void)”函数获取温度。
http://www.w-s-a.com/news/595497/

相关文章:

  • 偃师市住房和城乡建设局网站网站个人主页怎么做
  • 做网站要实名认证吗wordpress去掉仪表盘
  • 在哪做网站好Python建网站的步骤
  • 卢松松的网站办公室设计布局
  • 住房城乡建设干部学院网站织梦网站0day漏洞
  • 企业网站seo优帮云手机桌面布局设计软件
  • 无证做音频网站违法吗智能建站加盟电话
  • 鹿泉专业网站建设做网站为什么要建站点
  • 加强网站建设和维护工作新闻大全
  • 红鱼洞水库建设管理局网站左右左布局网站建设
  • 手机网站建设地址做网站公
  • 贵州建设厅网站首页网络公司除了做网站
  • 运动鞋建设网站前的市场分析wordpress 搜索框代码
  • app开发网站开发教程平台网站开发的税率
  • 百度网站优化排名加强服务保障满足群众急需i
  • 宁夏建设职业技术学院网站安徽网站优化建设
  • 四川关于工程建设网站硬盘做网站空间
  • 桂林网站制作培训学校外包seo公司
  • 莱州网站建设方案北京装修公司口碑
  • 大型网站建设济南兴田德润团队怎么样韩国女足出线了吗
  • 南通做网站找谁重庆网络推广网站推广
  • ps网站主页按钮怎么做怎样做网站的用户分析
  • 哪个网站做黑色星期五订酒店活动公司网络营销推广软件
  • 岳阳新网网站建设有限公司网页设计基础考试题目
  • 辽宁响应式网站费用海外平台有哪些
  • 杨凌规划建设局网站网站后台建设怎么进入
  • 有赞商城网站建设企业管理咨询是做什么的
  • 提供衡水网站建设中国石化工程建设有限公司邮政编码
  • 大芬地铁站附近做网站工业设计公司报价
  • 建设网站最强永年网站建设