[STM32H7] 【STM32H750B-DK评测】2. SHT30数据读取及串口打印调试信息

[复制链接]
1011|10
 楼主| HonestQiao 发表于 2022-9-19 12:49 | 显示全部楼层 |阅读模式
STM32H750B-DK套件,附带有一个SHT30温度传感器,是IIC接口的。
在套件提供的扩展板上,也有I2C接口:
45b5c104314f70c703e365d442399506
注意插上扩展板的时候,方块引脚要对着方块引脚,不要插反了。

在4针传感器接口上,也有一个I2C接口,但是我没有对应的接头,所以用CN10也就是红框部分的。

查看一下官方的电路原理图,可以了解具体的设置:
c3ad19bf22af41293bd192d7b60a77f8
从上图中可以看到,扩展板的SDA、SC分别连接到了主控板的PD13、PD12。


然后,我们在STM32CubeMX中,新建一个工程,并开启I2C通讯。
8cc9a670cd7ae0fc645f35da8ac61be1
发现只有I2C4能够很好的使用,其他可能有冲突。

2b41488f1daed1a3b124be418296e5ab
通讯速度,设置为100K即可。默认单位为K

如果默认的引脚不对,需要进行设置:
b5f5295b9135504eb8d885e7e06fd73b
确保PD12为I2C4_SCL,PD13为I2C4_SDA,然后生成代码即可。


打开代码文件的main.c后,可以查看到,I2C4已经做好了初始化了:
24e548b7d2eb74e9f69b7a99665246b5

下一步,引入SHT30的文件,就可以调用了。
2f589ba76b229e3f1f8b89dc1c5f30eb
sht30.h:https://gitee.com/honestqiao/stm32h750b-dk/blob/master/Core/Inc/sht30.h
sht30.c:https://gitee.com/honestqiao/stm32h750b-dk/blob/master/Core/Src/sht30.c
这部分的代码,参考了:https://blog.51cto.com/u_13640625/3032434 ,经过修改,适应当前最新的版本。


然后,在main.c中引入头文件:
474d88e92058057115650e610cd295c3

并初始化所需要的变量:
2c054be556cd59c159283daa6e4503e8

然后就可以初始化了:
a64a4da7a5b18b875d351dc294f1a05e

最后,在while部分读取显示即可:
16fc7d8659b1161d97e28787061e74f7
注意读取不能太快,加一个1000毫秒的延时就可以了。


然后重新进入调试模式,用串口连接STLink的虚拟串口,就可以看到输出的信息了:
b2c2221579fa8d7900a10ebeb60be8e3

以上的具体代码,可以查看:https://gitee.com/honestqiao/stm32h750b-dk/tree/master/Core

在上述代码中,可以看到,我使用了ch_printf来输出信息到串口。
开发板默认情况下,是不能输出信息到串口的,需要进行一番设置。

具体步骤如下:
1. 升级STLink固件:需要先退出调试模式,再打开STM32CumeProgrammer,按照如下设置进行升级:
5d6862f7f73f1b53d61bb55762386823
一定要打开VCP,这样就可以提供虚拟串口

2. 在STM32CubeMX中进行配置:
111f9d41fed978161116e5b4e41ba239
将DEBUG配置为Serial Wire

3. Makfile配置文件中,添加浮点数的处理:
02d8e8635cba84660f478b69f7e635cb

4. 代码中添加ch_printf定义:
bfd152279ef398d9c6061144aa2d8de9

特别注意:因为可能需要多次使用STM32CubeMX来修改配置,所以写代码有一点务必要注意,自己的代码应该放在:
9ae28c82e5538eaa9486179ae765c57e
USER CODE BEGIN 和 USER CODE END之前,否则修改后,原有代码会被自动清理,前功尽弃。

经过以上的处理,就可以将信息输出到串口,并在电脑上通过STLink自带的串口来接收数据了,非常的方便。
极客晨星 发表于 2022-11-22 18:00 | 显示全部楼层
请问一下,SHT30的精度是不是很好很高啊?

漫过岁月 发表于 2022-11-22 18:32 | 显示全部楼层
很不错啊,这开发板还带传感器

风吻过你的不羁 发表于 2022-11-22 19:04 | 显示全部楼层
SHT30就是体积太小了,而且价格太贵,不然早就火爆了

討厭和人归類 发表于 2022-11-22 19:36 | 显示全部楼层
SHT30的驱动还行,也是用I2C,时序不复杂

偷吻月亮 发表于 2022-11-22 20:08 | 显示全部楼层
我知道的是这传感器网上资料多多的啊

情和欲 发表于 2022-11-22 20:40 | 显示全部楼层
之前驱动过SHT21,感觉很准很稳,估计SHT30也差不多吧

喜爱弄人 发表于 2022-11-22 21:12 | 显示全部楼层
H750属实好玩,性价比还超级高

占得人间第一春 发表于 2022-11-22 21:44 | 显示全部楼层
这芯片能用linux么?是不是费劲啊?

銀河 发表于 2022-11-22 22:16 | 显示全部楼层
这芯片一般做GUI方面应该不错,主频够用

晚晚皆安 发表于 2022-11-22 22:48 | 显示全部楼层
话说,H750的硬件I2C是不是就没问题了啊

您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

115

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部