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

哪个旅游网站做的最好套别人的网站模板

哪个旅游网站做的最好,套别人的网站模板,开发电子商务网站和开发新闻类网站什么异同,壶关网站建设目录 一、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.yayakq.cn/news/833262/

相关文章:

  • 怎样做博客网站县城做网站
  • 做网站需要哪些软件建设一个门户网站
  • 商城网站页面设计汉字logo标志设计
  • 河北省住房和城乡建设部网站首页搜索引擎排名影响因素有哪些
  • 南京定制网站建设c2c网站建设价格
  • v2017网站开发网站建站是 什么
  • 想要给网站投稿如何做烟台建设银行网站
  • 免费网站无需下载直接观看石家庄营销网站建设多少钱
  • 微网站教程wordpress app 插件
  • 开源的网站系统ps怎样做网站设计
  • 仿站酷网站模板怎么看网站是谁做的
  • 阳江哪里做网站个人与公司网站备案
  • 宁波seo网站推广软件网店代运营哪家好
  • 网站开发合同协议郑州旅游网站建设
  • 中为网站建设ui设计学徒
  • 网站seo优化管理系统一键生成100个原创视频
  • 城关区建设局网站手机网站使用微信支付
  • 那些做环保网站的好哪里制作网站好
  • 哈尔滨企业建站服务商蒙icp备网站建设
  • 怎样做58网站深紫色网站
  • 建网站教学长沙企业建站系统
  • vr全景网站开发制作jsp网站建设项目实战课本内容
  • 芜湖网站建设whwzjs网站如何管理
  • 珠海市品牌网站建设平台wap自助建站
  • 适合用于网站开发的工具芜湖做公司网站
  • 网站建设宣传册内容微信里的小程序游戏
  • 网站建好了怎么做网站开发用笔记本电脑
  • 安卓软件下载用什么好潍坊seo关键词排名
  • ipv6 网站开发百度极速版免费下载
  • 怎么做企业曝光引流网站自己建一个网站能过期吗