13、使用库函数点亮第一个LED

13、使用库函数点亮第一个LED

 

  1.LED模块硬件电路
  2.GPIO库函数介绍
  3.GPIO初始化步骤
  4.使用库函数编写点亮LED程序

 

1.LED模块硬件电路

 

 

2.GPIO库函数介绍

(1)GPIO外设的库文件:

 
 stm32f10x_gpio.c 
  stm32f10x_gpio.h

 

(2)GPIO常用库函数

<1>初始化函数
void GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct)
功能:初始化一个或多个IO口(同一组端口)的工作模式、输出速度即GPIO的2个配置寄存器。
打开库函数工程模板进行讲解。
 

初始化范例:

 GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
 
 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //选择你要设置的IO口
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//设置推挽输出模式
 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率
 GPIO_Init(GPIOC,&GPIO_InitStructure);/* 初始化GPIO */

可以一次对多个管脚进行初始化,前提必须是它们的配置模式需一样。
比如:

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
<2>设置管脚输出电平函数
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能:设置某个IO口为高电平(可同时设置同一端口的多个IO)。底层
是通过配置BSRR寄存器。
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
功能:设置某个IO口为低电平(可同时设置同一端口的多个IO)。底层
是通过配置BSRR寄存器。
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, 
BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
功能:设置端口管脚输出电平,很少使用。
 
<3>读取管脚输入电平函数
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t 
GPIO_Pin);
功能:读取端口中的某个管脚输入电平。底层是通过读取IDR寄存器。
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
功能:读取某组端口的输入电平。底层是通过读取IDR寄存器。
 
<4>读取管脚输出电平函数
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t 
GPIO_Pin);
功能:读取端口中的某个管脚输出电平。底层是通过读取ODR寄存器。
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
功能:读取某组端口的输出电平。底层是通过读取ODR寄存器
 

(3)使能GPIO时钟函数

void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
不同的外设调用的时钟使能函数可能不一样
使能GPIOC端口时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
 

3.GPIO初始化步骤

(1)使能对应的GPIO端口时钟
(2)初始化GPIO
 

4.使用库函数编写点亮LED程序

本章所要实现的功能是:点亮D1指示灯。
程序框架如下:
(1)LED初始化
(2)点亮D1指示灯
 

作业:

(1)使用工程模板点亮LED2。
(2)实现LED闪烁效果。
(3)实现LED流水灯效果。
以上具体输出函数可任意使用
 

 

转载于:https://www.cnblogs.com/zhb123456/p/10494761.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值