- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 题: 按键控制流水灯
专 业: 物联网工程
班 级:
学 号:
姓 名:
指导教师:
设计日期:
成 绩:
嵌入式设计报告
一、设计目的作用
通过编程实现对LED灯项目的改变,加深对stm32芯片的理解,对keil软件的熟悉掌握,工程的搭建以及头文件的使用。掌握外部设备的接入以及外部中断的实现。
二、设计要求
用四个按键控制8个流水灯的流水显示
(1).按键A按下时候流水灯按从左往右的流水显示。
(2).按键B按下时候流水灯按从右往左的流水显示。
(3).按键C按下时候流水灯按中心开花的方式流水显示:从中间向两边流水显示
(4).按键D按下时候流水灯按从两边到中心移动的方式流水显示。
(5).(选做)引入时针中断:
默认的流水方式:
(1)对时钟中断的次数进行计数
(2)当时钟中断的次数除以4的余数为0时:按从左到右的顺序流水显示
(3)当时钟中断的次数除以4的余数为1时:按从右到左的顺序流水显示
(4)当时钟中断的次数除以4的余数为2时:按中心开花的方式流水显示
(5)当时钟中断的次数除以4的余数为3时:从两边到中心移动的方式流水显示。
系统启动时按默认的流水方式显示,当按下A、B、C、D四个按键时,按指定的方式流水显示,当按下按键E时恢复按默认的流水方式。
三、设计的具体实现
1、设计原理
这次使用的是stm32f103系列芯片,芯片引脚如下图
Stm32内部资源
GPIO原理及应用:
STM32F10x系列最多
有7个16位并行I/O口:
PA、PB、PC、PD、
PE、PF、PG
都是复用的,最少有2种
功能,最多有6种功能
GPIO的基本结构:
GPIO的工作模式
输入模式 :浮空输入、上拉输入 、下拉输入、模拟输入
输出模式: 通用开漏输出、通用推挽输出、复用推挽输出、复用开漏输出
GPIO的复用功能
引脚的其它功能
A/D输入、D/A输出 中断请求输入
计数或时钟输入/输出
串行数据、时钟、握手、片选,等输入/输出
USART、IIC、SPI、IIS、USB、JTAG等
总线(FSMC、SD数据、地址、控制)
系统启动信息输入,等
GPIO寄存器的格式
1、端口控制(配置)寄存器
GPIOx_CRL、GPIOx_CRH
2、端口数据输入寄存器
GPIOx_IDR (低16位有效)
3、端口数据输出寄存器
GPIOx_ODR(低16位有效)
4、端口位设置/清除寄存器
GPIOx_BSRR(高16位清0,低16位设置)
高16位各位写1清0,低16位写1置1;写0不影响
5、端口位清除寄存器
GPIOx_BRR (低16位写1清0,写1不影响)
6、端口配置锁存寄存器
GPIOx_LCKR(低16位有效)
GPIO引脚功能配置表:
引脚功能
CNF1
CNF0
MODE[1,0]
输
入
模拟输入
0
0
00
浮空输入
1
上/下拉输入
1
0
保留
1
1
通用
输出
推挽
0
0
01、10、11
(10、2、50MHz)
开漏
1
复用输出
推挽
1
0
开漏
1
GPIO库函数
1、GPIO_Init()函数 初始化
2、GPIO_DeInit() 复位
3、GPIO_SetBits()函数 位置1
4、GPIO_ResetBits()函数 位清0
5、GPIO_WriteBits()函数 写位, 写1/0
6、GPIO_Write()函数 写端口
7、GPIO_ReadInputData()
8、GPIO_ReadInputDataBit()
9、FWLib函数参数的检查
这些函数在“stm32f10x_gpio.c”中定义
初始化结构体GPIO_InitTypeDef的定义:
typedef struct //对引脚进行设置
{ uint16_t GPIO_Pin; //引脚对象
GPIOMode_TypeDef GPIO_Mode; //模式
GPIOSpeed_TypeDef GPIO_Speed; //速度
}GPIO_InitTypeDef;
STM32中断分类
1、CPU中断(15个通道)
包括非屏蔽中断、异常、指令中断、复位。
2、设备中断(43~68个通道)
指STM32微控制器片内所有设备的中断,其数量与型号有关,对于大容量(hd)类型,共60个。
3、外部中断(16/20个中断源、7/11个通道)
16个中断源,
文档评论(0)