ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

嵌入式学习博客:i.MX6ULL ECSPI3 驱动 ADXL345 加速度传感器

嵌入式学习博客:i.MX6ULL ECSPI3 驱动 ADXL345 加速度传感器 平台i.MX6ULL今天学习 SPI写了 ECSPI3 驱动 ADXL345 三轴加速度传感器顺便回顾之前学的 IIC、串口 UART把这三种嵌入式最常用串行总线做横向对比记录原理、代码和踩坑点。一、硬件信息使用开发板引脚17、18、19、20映射到 ECSPI317ECSPI3_SCLK18ECSPI3_MOSI19ECSPI3_MISO20GPIO1_IO20软件控制 CS 片选不是硬件 NSSGPIO 模拟片选重点i.MX6ULL 的 ECSPI 片选这里我们用普通 GPIO 来控制而不是 ECSPI 自带硬件片选灵活性更高。二、SPI 底层驱动代码spi.c三、ADXL345 传感器驱动adxl345.c驱动要点小结SPI 是全双工spi3_read_write发的同时收读传感器必须发 Dummy 字节0xFF用来提供时钟。ADXL345 SPI 协议规定地址最高位为 1 代表读0 代表写。CS 使用普通 GPIO 软件控制通信前拉低通信结束拉高。原始数据是 16 位有符号数乘以 0.0039 转换成重力加速度 g。四、SPI / IIC / UART 三种总线横向对比五、学习感悟最近串行总线学习路线UART → IIC → SPI。UART 是异步不需要时钟线靠双方约定波特率做调试打印最常用。IIC 只需要两根线依靠地址来区分设备但是半双工速度比较慢适合低速外设。SPI 同步全双工速度最快但是引脚多靠 CS 片选管理多个从机。本次 i.MX6ULL ECSSPI 驱动 ADXL345对 SPI 全双工的特性理解更深刻SPI 不存在单纯读或者单纯写只要 SCK 时钟在跑就会一边发一边收。头文件模板adxl345.h给你补上
返回列表