软件环境及硬件条件
- Win10
- CubeMX
- CubeIDE
- NUCLEO-STM32G0B1RE
- X-NUCLEO-IKS4A1
硬件简介
NUCLEO-G0B1RE
通用特性
- 采用LQFP64封装的STM32 微控制器与ARDUINO®共享的1个用户LED
- 1个用户按钮和1个复位按钮
- 32.768 kHz晶体振荡器
- 板连接器:ARDUINO® Uno V3扩展连接器意法半导体的morpho延长引脚头,用于完全访问所有STM32 I/O
- 灵活的供电选项:ST-LINK、USB VBUS或外部电源
- 具有USB重新枚举功能的板上ST-LINK调试器/编程器:大容量存储器、虚拟COM端口和调试端口
- 提供了全面的免费软件库和例程,可从STM32Cube MCU软件包获得
- 支持多种集成开发环境(IDE),包括IAR Embedded Workbench®、MDK-ARM,以及STM32CubeIDE
特定板功能
- 外部SMPS生成Vcore逻辑电源
- 24 MHz HSE
- 板连接器:外部SMPS实验专用连接器Micro-AB或Mini-AB USB连接器(用于ST-LINK)MIPI®调试连接器
- 兼容Arm® Mbed Enabled™
相关管脚介绍
-
B1按键(蓝色):B1按键为用户按钮,其连接到stm32的PC13引脚上。
-
UART2:串口,连接到stm32的PA2和PA3。
-
LED:LED接在PA5上。
此外,NUCLEO-G0B1RE通过CN5、CN6、CN8、CN9与X-NUCLEO-IKS4A1连接。
相关的详细文档我已经整理到一起了,链接可以在我的公众号“通信电子坊”回复“STM32资源”获取。或者也可以通过STM32官网找到。
X-NUCLEO-IKS4A1
特性
X-NUCLEO-IKS4A1是由STMicroelectronics推出的用于搭配STM32 Nucleo的运动MEMS和环境传感器扩展板,提供了在动作检测、环境监测等IoT领域的各种传感器的参考解决方案。
板载传感器:
- LSM6DSO16IS:MEMS 3D加速度计 + 3D陀螺仪 与ISPU
- LIS2MDL:MEMS 3D磁力计
- LIS2DUXS12:超低功耗MEMS 3轴加速度计,低功率和高精度MEMS绝对数字输出气压计
- SHT40AD1B:高精度超低功耗的温湿度传感器
- STTS22H:低电压,超低功耗,0.5°C精度的温度传感器
- LSM6DSV16X:MEMS 3D加速度计+ 3D陀螺仪
相关管脚介绍
NUCLEO-G0B1RE通过CN5、CN6、CN8、CN9与X-NUCLEO-IKS4A1连接。X-NUCLEO-IKS4A1的各个传感器均挂载在I2C总线上。
各个传感器的地址如下:
软件安装
主要就是安装CubeMX和CubeIDE这两个软件,可以直接在ST官网进行下载,但是官网访问的反应速度十分慢,也可以通过我提供的链接下载,链接可以在我的公众号“通信电子坊”回复“STM32资源”获取。
新建示例工程
CubeMX生成工程
安装传感器和运动算法软件扩展包
首先打开STM32CubeMX软件,在右侧选择install/remove,进入到embedded software packages manager界面。
在embedded software packages manager的STMicroelectronics中我们找到X-CUBE-MEMS1,选择最新版本(我这里目前最新为10.0.0),点击install,之后跟随提示即可完成传感器和运动算法软件扩展包的安装。
从ST Board新建工程
由于我们使用的是NUCLEO-G0B1RE开发板,这里可以直接从板卡创建工程。(当然也可以根据MCU型号进行创建)
在目录中找到并选中我们的板卡NUCLEO-G0B1RE,点击Strat Project开始我们工程的创建。
配置管脚
由于UART、LED等其它管脚软件已经自动帮我们配置好了,这里我们仅需要设置PB8、PB9分别为I2C1_SCL和I2C1_SDA,并将PC13修改为EXTI_13。
设置I2C和NVIC
由于I2C1默认是未启用的,因此需要我们自行将其启用。
在NVIC这里我们将EXTI的interrupt勾选上。
添加IKS4A1扩展
完成以上步骤后,我们来将IKS4A1添加到我们的工程中去。在顶部选择Select Components进入到Packs界面。
在Packs界面中我们找到X-CUBE-MEMS1。选择Application为IKS4A1_DataLogTerminal,并将Board Externsion IKS4A1选中。最后点击OK退出。
配置IKS4A1
在Middleware and Software Packs中我们选中X-CUBE-MEMS1,并将中间的两个选项都选上。之后再底部的Platform Settings中我们对相关的BSP管脚进行配置。
生成CubeIDE工程
完成以上步骤后,就能够生成我们的工程文件了。选择工程名称以及存储位置,并将IDE选择为STM32CubeIDE。最后点击右上方的GENERATE CODE即可完成工程生成。
CubeIDE下载工程
打开工程
在我们生成的工程目录下找到.project文件,双击即可打开该CubeIDE工程。
build工程
打开工程后,在左侧找到我们的工程并右键,点击Build Project即可进行工程的构建。
如果工程没有问题并且构建完成,在Console中会打印如上信息。
下载工程
最后我们需要将我们构建好的工程下载到我们的开发板上。
点击CubeIDE最上方的绿色小箭头,在弹出的窗口中选择OK,就能够将我们的程序下载到我们的开发板上啦!
最后打开我们的串口助手,选择相应的COM号,波特率设置为115200,打开串口即可看到采集到的传感器信息了。