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

福州网站建设效果平台app如何推广

福州网站建设效果,平台app如何推广,网站前台做哪些工作,六盘水网站设计目录 一、IIC轮询模式 1.1 配置 1.2 编写AHT20驱动 1.2.1 aht20.h 1.2.2 aht20.c 二、I2C中断 2.1 打开中断 2.2 分离读取流程 2.3 在主函数中重新编写读取流程 2.4 在i2c.c中重新定义stm32f1xx_hal_i2c.h中的两个函数 三、I2CDMA 3.1 配置DMA通道 3.2 代码的修改 一…

目录

一、IIC轮询模式

1.1 配置

 1.2 编写AHT20驱动

1.2.1  aht20.h

1.2.2 aht20.c

二、I2C中断

2.1 打开中断

 2.2 分离读取流程

2.3 在主函数中重新编写读取流程

2.4 在i2c.c中重新定义stm32f1xx_hal_i2c.h中的两个函数

三、I2CDMA

3.1 配置DMA通道

 3.2 代码的修改


一、IIC轮询模式

1.1 配置

 1.2 编写AHT20驱动

根据AHT20手册编写初始化与读数据函数

1.2.1  aht20.h

#ifndef INC_AHT20_H_
#define INC_AHT20_H_#include "i2c.h"void AHT20_Init();
void AHT20_Read(float* Temperature,float* Humidity);#endif /* INC_AHT20_H_ */

1.2.2 aht20.c

#include "aht20.h"#define AHT20_ADDRESS 0x70void AHT20_Init()
{uint8_t readBuffer;HAL_Delay(40);HAL_I2C_Master_Receive(&hi2c1,AHT20_ADDRESS,&readBuffer,1,HAL_MAX_DELAY);if((readBuffer& 0x80)==0x00){uint8_t sendBuffer[3]={0xBE,0x80,0x00};HAL_I2C_Master_Transmit(&hi2c1, AHT20_ADDRESS, sendBuffer, 3, HAL_MAX_DELAY);}
}void AHT20_Read(float* Temperature,float* Humidity)
{uint8_t sendBuffer[3] = {0xAC,0x33,0x00};uint8_t readBuffer[6];HAL_I2C_Master_Transmit(&hi2c1, AHT20_ADDRESS, sendBuffer, 3, HAL_MAX_DELAY);HAL_Delay(75);HAL_I2C_Master_Receive(&hi2c1,AHT20_ADDRESS,readBuffer,6,HAL_MAX_DELAY);if((readBuffer[0] & 0x80)== 0x00){uint32_t date = 0;date=(((uint32_t)readBuffer[3]>>4) + ((uint32_t)readBuffer[2]<<4) + ((uint32_t)readBuffer[1]<<12));*Humidity = date * 100.0f/(1<<20);date=(((uint32_t)readBuffer[3]&0x0F)<<16) + ((uint32_t)readBuffer[4]<<8) + (uint32_t)readBuffer[5];*Temperature = date * 200.0f/(1<<20)-50;}
}

二、I2C中断

2.1 打开中断

 2.2 分离读取流程

分为测量指令 读取指令 解析 三部分

void AHT20_Measure()
{static uint8_t sendBuffer[3] = {0xAC,0x33,0x00};HAL_I2C_Master_Transmit_IT(&hi2c1, AHT20_ADDRESS, sendBuffer, 3);
}void AHT20_Get()
{HAL_I2C_Master_Receive_IT(&hi2c1,AHT20_ADDRESS,readBuffer,6);
}void AHT20_Analysis(float* Temperature,float* Humidity)
{if((readBuffer[0] & 0x80)== 0x00){uint32_t date = 0;date=(((uint32_t)readBuffer[3]>>4) + ((uint32_t)readBuffer[2]<<4) + ((uint32_t)readBuffer[1]<<12));*Humidity = date * 100.0f/(1<<20);date=(((uint32_t)readBuffer[3]&0x0F)<<16) + ((uint32_t)readBuffer[4]<<8) + (uint32_t)readBuffer[5];*Temperature = date * 200.0f/(1<<20)-50;}
}

2.3 在主函数中重新编写读取流程

	  if(aht20State==0){AHT20_Measure();aht20State=1;}else if(aht20State==2){HAL_Delay(75);AHT20_Get();aht20State=3;}else if(aht20State==4){AHT20_Analysis(&temperature, &humidity);sprintf(message,"温度�? %.1f �?, 湿度�?%.1f %%\r\n",temperature,humidity);HAL_UART_Transmit(&huart1, (uint8_t*)message, strlen(message), HAL_MAX_DELAY);HAL_Delay(1000);aht20State=0;}

2.4 在i2c.c中重新定义stm32f1xx_hal_i2c.h中的两个函数

// 发送完成时回调
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c)
{if(hi2c==&hi2c1){aht20State=2;}
}void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c)
{if(hi2c==&hi2c1){aht20State=4;}
}

三、I2CDMA

3.1 配置DMA通道

 3.2 代码的修改

HAL_I2C_Master_Transmit_IT(&hi2c1, AHT20_ADDRESS, sendBuffer, 3);
//修改为
HAL_I2C_Master_Transmit_DMA(&hi2c1, AHT20_ADDRESS, sendBuffer, 3);
HAL_I2C_Master_Receive_IT(&hi2c1,AHT20_ADDRESS,readBuffer,6);
//修改为
HAL_I2C_Master_Receive_DMA(&hi2c1,AHT20_ADDRESS,readBuffer,6);

http://www.khdw.cn/news/66227.html

相关文章:

  • 网站建设与规划策划书满足seo需求的网站
  • 怎样提高网站访问速度上海百度公司地址在哪里
  • 网站建设意向表广告公司营销策划方案
  • jsp动态网站开发与实例做外贸网站的公司
  • 阳山网站seo如何开发微信小程序
  • 凡科做数据查询网站网站营销
  • 驻马店网站建设公司nba常规赛
  • 怎么做浏览网站的小程序怎么推广app让人去下载
  • 电子商务网站开发实例营口seo
  • 易企秀类似的软件seo入门基础知识
  • 网页游戏开服表 怎么删除seo内容优化方法
  • 企业模式网站列表管理器厦门百度广告
  • 什邡市建设局门户网站百度的人工客服
  • 网站建设中遇到的问题网络平台推广有哪些渠道
  • 河南商丘网站网络销售模式有哪些
  • 淄博网站建设好的公司开鲁网站seo站长工具
  • 自己做的网站怎么维护广告优化师
  • b站 网站建设搜索引擎优化结果
  • 无锡建站模板系统网络营销平台
  • 网后台的网站怎么做百度seo搜索引擎优化方案
  • 优秀网站设计有哪些如何销售自己产品方法有哪些
  • 网站开发需要什么软件太原网站快速排名优化
  • 网站建设成本包括什么网络营销模式有哪些
  • 万网ecs放多个网站今日军事新闻最新消息新闻
  • 专做项目报告的网站五行seo博客
  • 西安网站建设sd2w合肥seo外包平台
  • 河南宣传片制作公司重庆seo建站
  • wordpress新闻自媒体主题太原seo排名收费
  • 论坛网站前置审批深圳seo优化服务
  • 平顶山网站建设费用安卓优化大师