此内容由EEWORLD论坛网友lxdiyi原创,如需转载或用于商业用途需征得作者同意并注明出处
前几天我在STM32L476G Demo Kit上确认IKS01A3是OK的。因为后续要在STM32L4R9I_DISCO上平台上调试,所以我花了一点时间在STM32L4R9I_DISCO上测试了一下:主要重新熟悉一下硬件和相关软硬件资讯。
1.硬件连接
IKS01A3所有传感器连接到同一个I2C上,并通过J2接口转出,STM32L4R9I_DISCO专用的 EXT_I2C接口CN2, 只要注意Pin脚定义把两者通过杜邦线连接起来即可。
下面是EXT_I2C的硬件信息:
2.工程创建
我自己有使用FreeRTOS做了一个简单的工程作为本次评测的Demo使用。不过x-nucleo-iks01a3软件包和部分Middleware的移植花费了我很多时间。为了快速确认IKS01A3在STM32L4R9I_DISCO上OK。我使用STM32CubeMX创建了测试工程。
1).STM32CubeMX必须使用Version5.3.1, STM32CubeMX必须使用Version5.3.1, STM32CubeMX必须使用Version5.3.1 !!!!!!!重要的事情说三遍,我之前使用的是5.2版本,创建出来的工程一塌糊涂:基本的头文件都没include进去,编译一下Error多的让人绝望。
打开STM32CubeMX,选择"ACCESS TO BOARD SELECTOR",模板自然选择“STM32L4R9I_DISCO”:
2).添加STMicroelectronics-X-CUBE_MEMS1到工程中:
点击菜单栏的"Additional SoftWare",把X-CUBE_MEMS1驱动和应用添加到新建的工程中。
3).配置IKS01A3在工程中的接口和参数
4).根据自己的编译工具,生成对应的source code。然后打开工程进行编译。
5).编译发现有error,出现。有关i2c的宏定义没有被stm32l4r9i_disco_bus.h包含到。在stm32l4r9i_disco_bus.h中添加"main.h",
编译通过没有问题。
6).直接烧录进板子,STM32L476G Demo Kit上开发板的默认串口(usart2)会有IKS01A3的各种数据打印出来(Flash Download菜单中,记得勾选Erase Full Chip)。