没有合适的资源?快使用搜索试试~ 我知道了~
首页RT-Thread SPI设备应用指南
资源详情
资源评论
资源推荐
图2-1SPI设备驱动框架层次结构体
AN0004 SPI设备应用指南
!!! abstract "摘要"
1 本文的目的和结构
1.1 本文的目的和背景
串行外设接口(Serial Peripheral Interface Bus,SPI),是一种用于短程通信的同步串行通信接口规范,主要应
用于单片机系统中。SPI主要应用于 EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器
等。在芯片的管脚上占用四根线或三根线,简单易用,因此越来越多的芯片集成了这种通信接口。
为了方便应用层程序开发,RT-Thread中引入了SPI设备驱动框架。本文说明了如何使用RT-Thread SPI设备驱动。
1.2 本文的结构
本文首先简要介绍了RT-Thread SPI设备驱动框架,然后在正点原子STM32F4探索者开发板上运行了SPI设备驱动示
例代码。最后详细描述SPI设备驱动框架接口的使用方法及参数取值。
2 SPI设备驱动框架简介
RT-Thread SPI设备驱动框架把MCU的SPI硬件控制器虚拟成SPI总线(SPI BUS#n),总线上可以挂很多SPI设备
(SPI BUS#0 CSm),每个SPI设备只能挂载到一个SPI总线上。目前,RT-Thread已经实现了很多通用SPI设备的驱
动,比如SD卡、各种系列Flash存储器、ENC28J60以太网模块等。SPI设备驱动框架的层次结构如下图所示。
基于前面的介绍用户已经大致了解了RT-Thread SPI设备驱动框架,那么用户如何使用SPI设备驱动框架呢?
3 运行示例代码
本章节基于正点原子探索者STM32F4 开发板及SPI示例代码,给出了RT-Thread SPI设备驱动框架的使用方法。
3.1 示例代码软硬件资源
本应用笔记以驱动SPI接口的OLED显示屏为例,说明了如何添加SPI设备驱动框架及底层硬件驱动,使用SPI设备驱动
接口开发应用程序。并给出了在正点原子STM32F4探索者开发板上验证的代码示例。
1
STM32管脚 OLED显示屏管脚 说明
PA5 D0 SPI1 SCK,时钟
PA6 SPI1 MISO,未使用
PA7 D1 SPI1 MOSI,主机输出,从机输入
PC6 D/C GPIO,输出,命令0/数据1选择
PC7 RES GPIO,输出,复位,低电平有效
PC8 CS GPIO,输出,片选,低电平有效
3.3V VCC 供电
GND GND 接地
1. RT-Thread 源码
2. ENV工具
3. SPI设备驱动示例代码
4. 正点原子STM32F4探索者开发板
5. 1.5寸彩色OLED显示屏(SSD1351控制器)
6. MDK5
正点原子探索者STM32F4 开发板的MCU是STM32F407ZGT6,本示例使用USB转串口(USART1)发送数据及供
电,使用SEGGER J-LINK连接JTAG调试,STM32F4 有多个硬件SPI控制器,本例使用 SPI1。彩色OLED显示屏板载
SSD1351控制器,分辨率128*128。
STM32F4 与 OLED 显示屏管脚连接如下表所示:
图3.1-1 正点原子开发板
图3.1-2 彩色OLED显示屏
SPI设备驱动示例代码包括 app.c、drv_ssd1351.c、drv_ssd1351.h 3个文件, drv_ssd1351.c 是OLED显示屏驱动
文件,此驱动文件包含了SPI设备ssd1351的初始化、挂载到系统及通过命令控制OLED显示的操作方法。由于RT-
Thread上层应用API的通用性,因此这些代码不局限于具体的硬件平台,用户可以轻松将它移植到其它平台上。
3.2 配置工程
使用menuconfig配置工程:在env工具命令行使用cd 命令进入 rt-thread\bsp\stm32f4xx-HAL 目录,然后输入
menuconfig 命令进入配置界面。
修改工程芯片型号:修改 Device type为STM32F407ZG。
图3.2-1 使用menuconfig开启SPI
配置shell使用串口1:选中Using UART1,进入RT-Thread Kernel ---> Kernel Device Object菜单,修改the
device name for console为uart1。
开启SPI总线及设备驱动并注册SPI总线到系统:进入RT-Thread Components ---> Device Drivers菜单,选中
Using SPI Bus/Device device drivers,RT-Thread Configuration界面会默认选中Using SPI1,spi1总线设备
会注册到操作系统。
开启GPIO驱动:进入RT-Thread Components ---> Device Drivers菜单,选中Using generic GPIO device
drivers。OLED屏需要2个额外的GPIO用于DC、RES信号,SPI总线驱动也需要对片选管脚进行操作,都需要
调用系统的GPIO驱动接口。
生成新工程及修改调试选项:退出menuconfig配置界面并保存配置,在ENV命令行输入 scons --target=mdk5 -s
命令生成mdk5工程,新工程名为project。使用MDK5打开工程,修改调试选项为J-LINK。
剩余18页未读,继续阅读
jackice1989
- 粉丝: 1
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5