STM32寄存器&HAL库方式的LED程序

假设你手中已有 STM32最小系统核心板(STM32F103C8T6)+面板板+3只红绿蓝LED,并搭建了电路,分别GPIOA-5、GPIOB-9、GPIOC-14 这3个引脚上控制LED灯(最高时钟2Mhz),轮流闪烁,间隔时长1秒。
1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;

2)用C语言 寄存器方式编程实现。

一.STM32点灯介绍

stm32的点灯是,通过使能外设GPIO时钟,发出指令给外设GPIO,外设GPIO收到指令后,着手配置自己的寄存器,然后给IO口模式,让其实现各种功能,过程为:CPU给指令->GPIO收到指令->配置内部寄存器->配置IO口模式(注意是模式)->控制LED亮灭

二.GPIO设置

1.输入输出模式

输入模式

浮空输入模式:浮空输入状态下,IO 的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。可做KEY按键识别。

上下拉输入模式:内部设有上拉和下拉电阻,当外部电路为低电平,IO口设为下拉模式,当外部电路为低电平,IO口设为上拉模式。

模拟输入:用作内部ADC输入或DAC输出,预防干扰。

输出模式

推挽输出模式:(最常用)

开漏输出模式:(不常用)

推挽、开漏复用模式

2.最大速率设置

3.时钟配置
本次实验采用GPIOA、B、C三个端口。该三个端口都属于APB2总线

(1)找到时钟使能寄存器映射基地址




 

(2)找到端口偏移地址以及对应端口所在位置 

4.GPIO初始化步骤

使能GPIOx口的时钟

指明GPIOx口的哪一位,这一位的速度大小以及模式

调用GPIOx初始化函数进行初始化

调用GPIO-SetBits函数,进行相应位的置位

三.C语言实现

1.创建项目

2.选择STM32F103C8开发板

 3.source group里创建led.c,并写入代码,注意项目结构

代码如下:

/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值