前言
BMP280是一款气压计传感器,玩飞控的朋友应该不陌生。最近捣鼓正点原子的F405飞控,在用HAL库I2C驱动BMP280气压计传感器的时候踩了点坑,记录一下。
硬件
芯片:STM32F405RGT6
原理图:
注意SDO的接法,与器件通信地址有关。
I2C用的是PB6 PB7引脚。
CubeMX配置
- 设置时钟源
- 设置debug模式
- 配置I2C,只是做测试用的,配置参数可以不修改,默认就行
- 配置串口,用来打印调试信息,同样的,配置参数用默认的
- 配置时钟,根据硬件设置好晶振频率,设置主频,CubeMX可以自动配置好
- 生成代码
添加代码
打开生成的工程,在main.c里添加测试的代码
- 串口重定向,将printf输出到串口,打印信息
//加入以下代码,支持printf函数,而不需要选择use MicroLIB
#if 1
#include <stdio.h>
#pragma import(__use_no_semihosting)
//标准库需要的支持函数