10、ARM嵌入式系统:加速传感器MMA8451初始化
一、加速传感器在板子上的位置
MMA8451加速传感器经常用于运动检测,实时方向检测,虚拟现实设备中的位置检测等,还比较常见。
二、加速传感器涉及的寄存器
主要涉及PTE24/PTE25管脚对应的寄存器。
三、初始化流程
void MMA8451_Init()
{
MMA8451_init_I2C();
MMA8451_WriteRegister(0x2A, 0x01);
}
从初始化代码中可以看到,加速传感器是通过I2C接口去读写的。所以要先初始化I2C接口
3.1 I2C初始化
void MMA8451_init_I2C(void)
{
SIM_SCGC4 |= SIM_SCGC4_I2C0_MASK;
SIM_SCGC5 |= SIM_SCGC5_PORTE_MASK;
/* configure GPIO for I2C0 function */
PORTE_PCR24 = PORT_PCR_MUX(5);
PORTE_PCR25 = PORT_PCR_MUX(5);
// ClockRate
I2C0_F = 0x14; /* set MULT and ICR */
// I2C Enable
I2C0_C1 = I2C_C1_IICEN_MASK; /* enable IIC */
}
step1:打开I2C0时钟
系统时钟选通控制寄存器选择I2C0模块
SIM_SCGC4 |= SIM_SCGC4_I2C0_MASK;
step2:打开PORTE引脚时钟
从原理图上可以看到I2C对应PORTE,所以要打开PORTE的时钟
step3:配置GPIO
PORTE_PCR24 = PORT_PCR_MUX(5);
PORTE_PCR25 = PORT_PCR_MUX(5);
为什么配置为5呢?没明白
step4:配置I2C分频器寄存器
I2C0_F = 0x14;
0x14即 MULT=0,ICR=0x14,ICR为I2C时钟速率。那么SDA=2.125,SCL START=4.25,SCL STOP=5.125.
I2C读写过程过程:I2C接口由串行时钟(SCL)和串行数据(SDA)线组成。
假设一个主服务器想要发送数据给一个从服务器:
(a)主机发送一个START条件,并向从机发送地址。
(b)主机将数据发送到从机。
(c)主机以STOP条件终止传输。
step5:通过I2C控制寄存器使能I2C
I2C0_C1 = I2C_C1_IICEN_MASK;
10、ARM嵌入式系统:加速传感器MMA8451初始化相关推荐
- 7、ARM嵌入式系统:LCD/数码管/OLED初始化
一.LCD/数码管模块在板子上的位置 LCD和数码管在板子上都分别有一个插槽. 二.LCD/数码管初始化代码 //SMG init void SMG_Init() { /* PORTB and POR ...
- 8、ARM嵌入式系统:UART初始化
一.UART概述 百度上UART的定义:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行 ...
- ARM嵌入式系统malloc的实现(C源码)
在ARM嵌入式系统实现malloc内存分配机制. 在ARM cpu上验证通过. ps:也可在pc ubuntu linux进行验证 #include "include/lib_replace ...
- 网络上所谓的《ARM嵌入式系统入门最好的文章》
一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位. 广义的嵌入式无非几种:传统的什么51.AVR.PIC称做嵌入式微控制器:ARM是嵌入式微处理器 ...
- [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件
本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件. 首先来说下硬件,书中说,包含有 ...
- 嵌入式:ARM嵌入式系统开发流程概述
文章目录 嵌入式开发的具体过程 开发流程图 嵌入式软件开发环境 交叉开发环境 远程调试结构图 嵌入式应用软件开发的基本流程 软件模拟环境 目标板与评估板 嵌入式软件开发的可移植性和可重用性 嵌入式开发 ...
- 移植tcpdump到ARM嵌入式系统
移植tcpdump到嵌入式系统 tcpdump和libpcap的下载链接:Home | TCPDUMP & LIBPCAP 百度网盘下载链接:https://pan.baidu.com/s/1 ...
- 9、ARM嵌入式系统:周期中断定时器PIT初始化
一.PIT是什么 PIT即Periodic interrupt timer,周期中断定时器,PIT模块是一组计时器,可用于引发中断和触发DMA信道.PIT主要功能是定时器产生DMA触发脉冲和定时器产生 ...
- ARM嵌入式系统上OpenCL测试
By Toradex Giovanni Bauermeister 1). 简介 相比曾经,如今科技设备对处理性能和速度要求越来越高.为了应对这种技术需求,许多公司发明了不少方法来获得更好的处理性能.例 ...
最新文章
- D3.js可视化库入门视频教程
- win7电脑蓝牙 耳机
- 用正则表达式去除行首行尾空格
- python软件是干什么用的-python中的django是做什么的
- JS中的call()和apply()方法(转)
- 争分夺秒!一大批高校正在加紧扩建......
- MonkeyRunner学习(1)测试连接
- [求助]请教一个问题!
- Nagios监控数据脚本记录一下。
- JS实现图片无缝滚动特效;附addEventListener()方法、offsetLeft和offsetWidth属性。
- vcenter服务器修改ip,vcSA修改IP或hostname
- 图片拼图效果——ps
- 【转】几种不同格式的json解析
- Cloud E随笔-后端_piece3--实现登录功能
- Redis核心技术笔记——Redis主从、主从从、切片集群
- Mysql多表联查——经典50题
- 轻微课靠谱吗?轻微课学员的真实评价!!!
- 南大匡亚明学院计算机方向,解密!南京大学“最强理科班”这样炼成……
- 打包SWF和HTML,将多个swf打包成一个EXE文件
- Tomcat调优总结【内存和线程】