本人使用STM32L151C8T6低功耗芯片,在用硬件IIC方式(即采用HAL库配置方式)每隔1S读取一次SHT20温湿度传感器数值,并显示在串口调试助手上。
具体步骤如下:
1.配置CubeMX,配置内容有RCC、USART1、作者使用IIC2,TIM2,详见下图。
2.时钟树进行配置,不同的MCU配置不一样,简单点的话,只要配置两个位置就可以。(可以参考之前的一篇博客)
4.配置TIM2,这里我们定时1S,并打开TIM2中断,具体见下图;
5.配置USART1,再次我设置的波特率是9600,一般默认波特率是1152000.
6.配置IIC2,SHT20是通过IIC通信的,想了解具体的SHT通信方式建议阅读SHT20英文手册。这里设置知识打开中断,其他的不做处理。
7.至此我们在CubeMX上的配置工作结束,生成代码,打开,编译。在串口.C文件里添加映射代码,如下图(这里支队修改的部分作出说明,没有修改的不做任何说明,感兴趣的朋友有兴趣可以多多研究,共同交流)
8.编写主函数,我们的目的是每一秒读取一次SHT20的数据,并显示在串口调试助手上。在主函数中添加声明变量(如下图)和初始化代码 HAL_TIM_Base_Start_IT(&htim2);
9.添加自己的回调代码,如下图:
10.编译程序,检查错误,没有错误之后下载,在串口调试助手上显示,如下图
至此,程序编写完毕,大家如有问题可以给我留言(本人本来做硬件,也是刚接触Cube不久,所以难免会有一些错误,还请大家指正)