本帖最后由 lb8820265 于 2019-7-28 20:41 编辑
以前都是先体验例程,这次来点不一样的,使用CubeMX新建例程。主要还是官网的MEMS1例程库网页崩溃导致我到处寻找解决办法。这里要感谢@littleshrimp与@hujj提供的例程库!
新建工程
首先下载STM32CubeMX,现在的最新版本是5.30。用CubeMX新建工程,然后选择“Board Selector”,因为我手上的是一块NUCLEO-F411RE的板子,所以我搜索对应的板子然后点击“Start Project”,一个基于NUCLEO-F411RE的空白工程就新建好了。
初始化IIC
通过研究IKS01A3的资料可以得知,板子上面所有的传感器都是通过一个I2C接口来进行通信的。该接口为I2C1,对应的引脚为B8与B9。在配置界面选择I2C1,模式选择为快速模式,引脚调整为B8与B9。
添加x-cube-mems1库
在界面点击“Additional Software”按钮,弹出Additional Software Components selection框,然后勾选“Board Extension”与“Device”复选框,在右边可以选择6.2.0版本的固件下载,下载后在Device_Application下面可以选择各种应用,这里我选择“IKS01A3_DataLogTeminal”应用,这个例程在6.2版本的固件包中有,然后在“Board_Externsion_MEMS”下选择“IKS01A3”,最后点击框右下的“OK”按钮。
配置应用工程
回到配置界面,发现可配置列表中多了MEMS固件库,点击进入,在右边勾选“Board Extension MEMS”与“Device Application”复选框。最后在下面配置的选项按照如下图配置。
生成工程
点击最上面标签页的“Project Manager”标签,在“Project”下设置工程名字与保存路径,选择IDE,最后点击右上角的“GENERATE CODE”工程就生成完毕了,如果没有下载F4固件包,会自动下载固件。
工程演示
使用IAR打开工程,编译运行。将两块板子如图插上,然后打开串口助手,波特率115200,会收到所有传感器的数据。可以发现这样生成的工程与固件包中的例程效果一样。
参考资料:
STMicroelectronics.X-CUBE-MEMS1_GettingStarted.pdf
(5.64 MB, 下载次数: 21)
源代码(两个文件一起解压):
lb_IKS01A3.zip
(11.21 MB, 下载次数: 297)
lb_IKS01A3.z01
(20 MB, 下载次数: 143)
此内容由EEWORLD论坛网友lb8820265原创,如需转载或用于商业用途需征得作者同意并注明出处