STM32学习笔记

 刚到公司实习,要学习STM32开发,BOSS给了一块战舰开发板,让我自己写一个功能要用在公司的产品上。难啊。。。以前根本没接触过STM32,只能一步一步慢慢来,利用晚上利用周末恶补一下。哎,算是为了大学前两年还债吧。




一~跑马灯实验(GPIO输出)

实验环境:keil4

实验平台:战舰STM32开发板

 


 GPIO口的高低电平控制是STM32最简单的外设控制。STM32的I/O口共有八种配置模式,四种输入,四种输出,分别是浮空输入,上拉输入,下拉输入,模拟输入,开漏输出,推挽输出,推挽式复用功能,开漏复用功能。其中常用的有,浮空输入,上/下拉输入,推挽输出(串口),复用输出。

要配置GPIO口必须用到GPIO初始化函数void GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef*GPIO_InitStruct),这里有两个参数,第一个用来指示GPIO范围,第二个为结构体指针,结构体类型为GPIO_InitTypeDef。其中配置内容有三个,GPIO_InitStructure.GPIO_Pin(引脚号),GPIO_InitStructure.GPIO_Mode(输入输出模式)GPIO_InitStructure.GPIO_Speed(输出速度,只有10MHz,2MHz,50MHz三种),到此关于GPIO的初始化算是完成。

但是,在初始化GPIO之前必须先通过RCC_APB2PPeriphClockCmd()函数使能I/O口时钟。

使用格式为RCC_APB2PPeriphClockCmd(GPIOX,ENABLE)。

最后GPIO口输出是通过函数GPIO_SetBits()和GPIO_ResetBits()两个函数控制的。例如要将GPIOA的引脚5设置为高电平:

GPIO_SetBits(GPIOA,GPIO_Pin_5);

将其设为低电平的方法:

GPIO_ResetBits(GPIOA,GPIO_Pin_5);

I/O操作的具体步骤为:

1.使能I/O口时钟,调用RCC_APB2PPeriphClockCmd()函数

2.初始化I/O参数,调用GPIO_Init()函数

3.操作I/O口

附上一份文件源码:

注:源码当中mian.c中操作GPIO用的是位操作的办法,初学者不建议

用。附上较为简易的库函数操作语句如下:

GPIO_SetBits(GPIOB,GPIO_Pin_5);

GPIO_SetBits(GPIOE,GPIO_Pin_5);

delay_ms(500);

GPIO_ResetBits(GPIOB,GPIO_Pin_5);

GPIO_ResetBits(GPIOE,GPIO_Pin_5);

delay_ms(500);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值