使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

时间:2024-04-10 21:10:47

本人使用STM32L151C8T6低功耗芯片,在用硬件IIC方式(即采用HAL库配置方式)每隔1S读取一次SHT20温湿度传感器数值,并显示在串口调试助手上。

具体步骤如下:

1.配置CubeMX,配置内容有RCC、USART1、作者使用IIC2,TIM2,详见下图。

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

2.时钟树进行配置,不同的MCU配置不一样,简单点的话,只要配置两个位置就可以。(可以参考之前的一篇博客)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

4.配置TIM2,这里我们定时1S,并打开TIM2中断,具体见下图;

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

5.配置USART1,再次我设置的波特率是9600,一般默认波特率是1152000.

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

6.配置IIC2,SHT20是通过IIC通信的,想了解具体的SHT通信方式建议阅读SHT20英文手册。这里设置知识打开中断,其他的不做处理。

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

7.至此我们在CubeMX上的配置工作结束,生成代码,打开,编译。在串口.C文件里添加映射代码,如下图(这里支队修改的部分作出说明,没有修改的不做任何说明,感兴趣的朋友有兴趣可以多多研究,共同交流)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

8.编写主函数,我们的目的是每一秒读取一次SHT20的数据,并显示在串口调试助手上。在主函数中添加声明变量(如下图)和初始化代码  HAL_TIM_Base_Start_IT(&htim2);

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

9.添加自己的回调代码,如下图:

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

10.编译程序,检查错误,没有错误之后下载,在串口调试助手上显示,如下图

使用STM32CubeMX对SHT20温度湿度传感器每秒进行一次数据读取(硬件IIC)

至此,程序编写完毕,大家如有问题可以给我留言(本人本来做硬件,也是刚接触Cube不久,所以难免会有一些错误,还请大家指正)