飞思卡尔KL25Z 产品accelerometer例程实现在codewarrior 10.x PE环境下,MCU 通过I2C总线定时读取三轴加速度传感器MMA8451Q的寄存器,将当前X、Y、Z三轴的加速度值通过串口输出的功能。
例程功能
飞思卡尔KL25Z 产品accelerometer例程实现在codewarrior 10.x PE环境下,MCU 通
过I2C 总线定时读取三轴加速度传感器MMA8451Q的寄存器,将当前X、Y、Z三轴的加速度值通过
串口输出的功能。
运行平台
ü FRDM-KL25Z
ü CodeWarrior V10.x/IAR
ARM IDE
三轴加速度传感器 MMA8451Q 简介
飞思卡尔加速度传感器 MMA8451Q 是一款智能、低功耗、I2C
通信输出,QFN 封装,8 位/14
位可选的数字加速度计,具有另个可编程中断引脚供 7 个中断源使用。该传感器可以检测自由落
体、运动、方向、倾角等。
下图为加速度传感器检测 6 个方向的示意图。
其 I2C 的 SCL 时钟频率可以高达 400kHz。
该芯片的 I2C 地址如表 1 所示,该数据为出厂默认数据。
表 1 从机地址
从机地址(SA0=0) | 从机地址(SA0=1) |
0011100(0x1C) | 0011101(0x1D) |
采集到的三轴(x,y,z)数据存放在地址为 01-06 这 6 个寄存器中,外围设备可以通过 I2C 通信接
口读取这 6 个寄存器,从而得到具体的三轴数据。
加速度传感器的 I2C 读取时序如下:
运行例程(CodeWarrior)
1) 使用 USB cable 连接 FRDM-KL25Z
开发板 Min-B USB 连接器(SDA J7);
2) 加载 accelerometer 工程:
· 选择菜单【File】-》【Import】-》【Exis
ting Projects into Workspace】
· 选择项目所在路径,并指定所要加载项目,点击完成:
3) 选择【accelerometer_demo_FLASH】,点击
进行编译;
4) 编译成功后,点击调试器箭头
,选择【Debug Configurations】进入调试器配置界面;
5) 选择【accelerometer_demo_FLASH_OpenSDA】,点击【Debug】进入调试界面;
6) 进入调试界面后,点击
运行例程。
运行例程(IAR)
1) 使用 USB cable 连接 FRDM-KL25Z 开发板 Min-B USB 连接器(SDA J7);
2) 加载 accelerometer 工程后,选择【RAM_128KB】,点击
进行编译;
3) 编译成功后,点击
进入调试界面;
4) 进入调试界面后,点击
运行例程。
串口配置
选择串口调试工具,使用下图配置信息:
注:其中端口号为实际硬件的串口号,查看【我的电脑】-》【设备管理器】-》【端口】
模块配置
CPU 模块配置:
I2C 模块配置:
该模块用于和加速度传感器通信。
TPM 模块配置:
该模块用于定时采集加速度传感器的值,作定时器使用。
UART 模块配置:
该模块用于将加速度传感器的值发送到串口助手。
代码说明
Accelerometer_demo 例程使用下列 IO 引脚资源,以及每个 IO 引脚的功能描述:
引脚名称 | 方向 | 功能 |
PTE24 | 输出 | I2C 时钟 |
PTE25 | 输入输出 | I2C 数据 |
主程序(main 函数)代码说明
I2C 初始化代码说明
加速度传感器初始化代码说明
读取加速度传感器三轴数据代码说明
定时中断改变状态代码说明
例程流程图
运行效果
1、
2、
3、
4、
5、
6、