实 验 报 告
课程名称: 微型计算机控制技术 时间: 20201022 点: D203
班级: 2017级机制3班 姓名: 杨帆 学号: 171031010304
实验项目名称: GPIO端口实验
实验指导教师: 赵保华 实验成绩评定:
实验目
ü通实验掌握 ARM 芯片 GPIO 端口
ü掌握 GPIO 端口控制 LED 显示
ü掌握系统时钟配置
ü掌握库开发原理方法
二 实验设备
ü通实验掌握 ARM 芯片 GPIO 端口
ü掌握 GPIO 端口控制 LED 显示
ü掌握系统时钟配置
ü掌握库开发原理方法
三 实验容
控制信盈达CotexM3 实验台发光二极 LED1LED2LED3LED4规律点亮具体序:LED1 亮>LED2 亮>LED3 亮>LED4 亮反复
四 实验原理
图示LED14 分 PB5 PE5 PA5 PA6相连通 PB5 PE5 PA5 PA6 引脚高低电控制发光二极亮灭脚输出高电时候发光二极熄灭反发光二极点亮
GPIO 脚位软件配置成种模式:
1 输入浮空:浮空输入状态IO 电状态确定完全外部输入决定果该引脚悬空情况读取该端口电确定做键读取电状态种配置抗干扰性差处理信号方面般配置功测试波形时候配置功
2 输入拉:电阻连接 VCC IO 口没连接信号时候确定高电 VCC 处获较驱动电流
3 输入拉:电阻连接 GND IO 口没连接信号时候确定低电
4 模拟输入:芯片部外设专功(ADCDAC 应 IO 口功)
5 开漏输出:IO 输出 0 接 GNDIO 输出 1悬空需外接拉电阻实现输出高电
6 推挽式输出:IO 输出 0 接 GNDIO 输出 1 接 VCC拥较强驱动力接 led三极
7 推挽式复功:GPIO 口作第二功时配置情况(非作通 IO 口)片外设 UARTSPI 模块应输出数线UART 发送线复功输出方
8 开漏复功:GPIO 口作第二功时配置情况(非作通 IO 口)片外设 IIC 模块应数线时钟线时候外接拉电阻 IIC 总线数线时钟线配置种模式
IO口输出电压值控制LED灯亮灭选择推挽输出工作模式
五 软件程序设计
1)配置系统时钟 RCC开PBPEPA端时钟
2)配置GPIO口 PB5PE5PA5PA6 推挽输出工作模式
3)IO口输出低电控制灯亮输出高电控制灯灭
参考程序:
mainc参考程序:
#include stm32f10xh芯片寄存器映射头文件
#include ledh写led头文件
static void Delay(u32 i)延时函数声明
*
函数
*
int main(void)
{
GPIO_LED_Init()LED灯初始化
while(1)
{
GPIO_ResetBits(GPIOBGPIO_Pin_5)PB5脚置0LED1亮
Delay(50000) 延时
GPIO_SetBits(GPIOBGPIO_Pin_5) PB5脚置1LED1灭
Delay(50000) 延时
GPIO_ResetBits(GPIOEGPIO_Pin_5)PE5脚置0LED2亮
Delay(50000) 延时
GPIO_SetBits(GPIOEGPIO_Pin_5) PE5脚置1LED2灭
Delay(50000)
GPIO_ResetBits(GPIOAGPIO_Pin_5)
Delay(50000)
GPIO_SetBits(GPIOAGPIO_Pin_5)
Delay(50000)
GPIO_ResetBits(GPIOAGPIO_Pin_6)
Delay(50000)
GPIO_SetBits(GPIOAGPIO_Pin_6)
Delay(50000)
}
}
*
延时函数
*
static void Delay(u32 i)
{
for(i>0i)
}
ledc参考程序:
****************************************************
函数名:GPIO_LED_Init
形参:
返回值:
函数功:4LED灯进行初始化关闭led灯
****************************************************
#include stm32f10x_gpioh
void GPIO_LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure
GPIOB口时钟开
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOEENABLE)
IO口配置输出模式输出速度50Mhz
GPIO_InitStructureGPIO_Mode GPIO_Mode_Out_PP
GPIO_InitStructureGPIO_Speed GPIO_Speed_50MHz
设置脚
GPIO_InitStructureGPIO_Pin GPIO_Pin_5
GPIO_Init(GPIOB&GPIO_InitStructure)根配置初始化PB5
GPIO_Init(GPIOE&GPIO_InitStructure)根配置初始化PE5
GPIO_InitStructureGPIO_Pin GPIO_Pin_5 |GPIO_Pin_6
GPIO_Init(GPIOA&GPIO_InitStructure)根配置初始化PA5PA6
关闭四led灯
GPIO_SetBits(GPIOBGPIO_Pin_5) PB5脚置1LED1灭
GPIO_SetBits(GPIOEGPIO_Pin_5) PE5脚置1LED2灭
GPIO_SetBits(GPIOAGPIO_Pin_5)
GPIO_SetBits(GPIOAGPIO_Pin_6)
}
ledh参考程序:
#ifndef _LED_H_
#define _LED_H_
void GPIO_LED_Init(void) 声明LED灯初始化函数
#endif
六 实验操作步骤
1 准备实验环境
STlink 仿真器连接 信盈达STM32 实验台板 JTAG 接口 实验台附带USB数线连接实验台板PC
2 开开发环境新建工程
1) 新建工程步骤参附录1
2) 新建两文件ledc(写函数定义)ledh(写函数声明)保存工程目录userAPIledc添加工程
3) 完成程序编写编译链接工程
开 Flash 菜单>Download程序载开发板 Flash 中 RESET 键复位观察 LED 情况
七实验结果:
八心体会
通次实验学知识通实验掌握 ARM 芯片 GPIO 端口掌握 GPIO 端口控制 LED 显示掌握系统时钟配置掌握库开发原理方法感谢老师指导学帮助
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档