一、实验目的
- 掌握嵌入式GPIO程序设计流程。
- 熟悉STM32固件库的基本使用。
二、实验设备
硬件: PC机 一台
软件: MDK V5.23 一套
Proteus8.7 一套
- 实验原理
1、GPIO的基本结构
2、GPIO寄存器
每个GPIO端口有:
两个配置寄存器(GPIOx_CRL,GPIOx_CRH)
两个数据寄存器(GPIOx_IDR和GPIOx_ODR)
一个置位/复位寄存器(GPIOx_BSRR),
一个复位寄存器(GPIOx_BRR)
一个锁定寄存器(GPIOx_LCKR)。
3、GPIO的模式
4、GPIO输出模式下速率
5、GPIO库函数
函数具体使用方式详见 STM32固件库使用手册.pdf
6、GPIO配置步骤
(1) 打开相应外设的时钟,例如:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);
//打开外设B口的时钟
(2)设定管脚模式,例如:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//选择8 管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//最高输出速度为50MHz,若是管脚用于输入,该项不需要设置
GPIO_Init(GPIOB, &GPIO_InitStructure);//按照上述管脚设置模式,初始化
7、常见延时函数
(1)us级延时函数
void delay_nus(unsigned long n) // n必须大于6
{
unsigned long j;
while(n–)
{
j=12;
while(j–);
}
}
(2)ms级延时函数
void delay_nms(unsigned long n) // ms级延时
{
while(n–)
delay_nus(1030);
}
四、实验内容
1、利用Keil5建立工程。建立工程方法见 新建工程模板.pdf 文件。
2、Proteus8.7的使用方法见第四章课件或自行查询资料。
STM32单片机编译环境keil5与Proteus仿真的简单结合应用_哔哩哔哩_bilibili —STM32环境keil5与Proteus仿真结合应用视频
下列题目中,LED1、LED2、LED3分别连接到PA1 、PA2、PA3,键盘K2、 K3分别连接到PC1 、PC2。
- 编程实现LED1、LED2、LED3交替闪烁,每个LED闪烁间隔时间0.2S(一亮一灭共0.2S),持续1S。
- 编程实现LED1、LED2、LED3正向流水灯功能(即依次顺序点亮,从上到下),LED间隔时间0.2S。
- 编程实现以下功能:
若键盘未按下,LED1、LED2、LED3交替闪烁,每个LED闪烁间隔时间0.2S(一亮一灭共0.2S),持续1S。
键盘K2按下,实现LED1、LED2、LED3正向流水灯功能(即依次顺序点亮,从上到下),LED间隔时间0.2S。
键盘K3按下,实现LED1、LED2、LED3反向流水灯功能(即依次顺序点亮,从下到上),LED间隔时间0.2S。
提交实验 告内容要求:
- 实验目的。
(1)、 掌握嵌入式GPIO程序设计流程。
(2)、 熟悉STM32固件库的基本使用。
2.实验内容。题1-3编程。(仿真截图、程序。注意排版)
(一)编写led初始化程序
(二)定义头文件,宏定义对应函数,以便使用
(三)主函数main():先执行对应初始化程序,并执行一次流水动作(1秒)
(四)死循环while(1)中:用if函数判断按键的状态,来实现切换正逆流水功能。
3.实验总结。
通过本次实验,对掌握嵌入式GPIO程序设计流程;对GPIO口的各种函数配置的应用有了更进一步的了解,同时也进一步熟悉了STM32固件库的基本使用。通过硬件实例和对应的控制程序,详细分析了在IO端口输出高低电平的效果。
搜索
复制
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!