一、加速传感器在板子上的位置

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初始化相关推荐

  1. 7、ARM嵌入式系统:LCD/数码管/OLED初始化

    一.LCD/数码管模块在板子上的位置 LCD和数码管在板子上都分别有一个插槽. 二.LCD/数码管初始化代码 //SMG init void SMG_Init() { /* PORTB and POR ...

  2. 8、ARM嵌入式系统:UART初始化

    一.UART概述 百度上UART的定义:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART.它将要传输的资料在串行通信与并行 ...

  3. ARM嵌入式系统malloc的实现(C源码)

    在ARM嵌入式系统实现malloc内存分配机制. 在ARM cpu上验证通过. ps:也可在pc ubuntu linux进行验证 #include "include/lib_replace ...

  4. 网络上所谓的《ARM嵌入式系统入门最好的文章》

    一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位. 广义的嵌入式无非几种:传统的什么51.AVR.PIC称做嵌入式微控制器:ARM是嵌入式微处理器 ...

  5. [ARM嵌入式系统开发]第一章之嵌入式系统的软硬件

    本章的最后,通过描述ARM为核心的嵌入式系统,来介绍了嵌入式系统的软件和硬件构成和结构.这里根据这部分的介绍以及其他的文章,描述下通用的嵌入式系统的软件和硬件.     首先来说下硬件,书中说,包含有 ...

  6. 嵌入式:ARM嵌入式系统开发流程概述

    文章目录 嵌入式开发的具体过程 开发流程图 嵌入式软件开发环境 交叉开发环境 远程调试结构图 嵌入式应用软件开发的基本流程 软件模拟环境 目标板与评估板 嵌入式软件开发的可移植性和可重用性 嵌入式开发 ...

  7. 移植tcpdump到ARM嵌入式系统

    移植tcpdump到嵌入式系统 tcpdump和libpcap的下载链接:Home | TCPDUMP & LIBPCAP 百度网盘下载链接:https://pan.baidu.com/s/1 ...

  8. 9、ARM嵌入式系统:周期中断定时器PIT初始化

    一.PIT是什么 PIT即Periodic interrupt timer,周期中断定时器,PIT模块是一组计时器,可用于引发中断和触发DMA信道.PIT主要功能是定时器产生DMA触发脉冲和定时器产生 ...

  9. ARM嵌入式系统上OpenCL测试

    By Toradex Giovanni Bauermeister 1). 简介 相比曾经,如今科技设备对处理性能和速度要求越来越高.为了应对这种技术需求,许多公司发明了不少方法来获得更好的处理性能.例 ...

最新文章

  1. D3.js可视化库入门视频教程
  2. win7电脑蓝牙 耳机
  3. 用正则表达式去除行首行尾空格
  4. python软件是干什么用的-python中的django是做什么的
  5. JS中的call()和apply()方法(转)
  6. 争分夺秒!一大批高校正在加紧扩建......
  7. MonkeyRunner学习(1)测试连接
  8. [求助]请教一个问题!
  9. Nagios监控数据脚本记录一下。
  10. JS实现图片无缝滚动特效;附addEventListener()方法、offsetLeft和offsetWidth属性。
  11. vcenter服务器修改ip,vcSA修改IP或hostname
  12. 图片拼图效果——ps
  13. 【转】几种不同格式的json解析
  14. Cloud E随笔-后端_piece3--实现登录功能
  15. Redis核心技术笔记——Redis主从、主从从、切片集群
  16. Mysql多表联查——经典50题
  17. 轻微课靠谱吗?轻微课学员的真实评价!!!
  18. 南大匡亚明学院计算机方向,解密!南京大学“最强理科班”这样炼成……
  19. 打包SWF和HTML,将多个swf打包成一个EXE文件
  20. Tomcat调优总结【内存和线程】

热门文章

  1. 51 单片机实战教程(14 外围芯片驱动程序之LTC1658芯片驱动)
  2. ICPC 2018 南京站游记
  3. 【MySQL:Use Of MySQL】使用记录
  4. 适合练习听力的动画排名
  5. linux文件权限3代表啥,3,LINUX文件属性详述
  6. 蓝桥杯备赛笔记-规律题
  7. 基础知识----Symbian UIQ
  8. 关于 ? extends T 和 ? super T 的存在意义和使用
  9. Chrome源码剖析 【五】
  10. 赚钱项目在家可以赚钱,赶紧来看看吧!