跑马灯控制设计与实现
① GPIO_WriteBit ()函数是向指定IO口的引脚写0或者写1,也就是向寄 存器ODR相应位的写0或者写1
② GPIO_Write()函数是向指定IO口写数据,也就是是向寄存器ODR写数 据
n 例如:向PC8写1的代码是: GPIO_WriteBit(GPIOC, GPIO_Pin_8, 1);
n STM32的IO端口操作
n 输入输出函数
1. GPIO_ReadInputDataBit ()函数
n 是读取指定IO口的对应引脚值,也就是读取IDR寄存器的值 n 例如:读取GPIOA.6(既PA6)引脚值:
GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
2. GPIO_ReadInputData ()函数
n 常用的IO端口寄存器有6个:CRL、CRH、IDR、ODR、BSRR 和BRR。
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 在前面,我们围绕STM32的IO端口寄存器如何使用,进行了详 细的介绍。现介绍一下IO口的操作步骤,步骤如下:
1. 调用RCC_APB2PeriphClockCmd()函数,使能IO口时钟; 2. 调用GPIO_Init()函数,初始化IO口参数; 3. 使用IO口操作方法,对IO口进行各种操作。
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 初始化函数
3. GPIO_ReadOutputDataBit ()和GPIO_ReadOutputData ()函数
① GPIO_ReadOutputDataBit ()函数是读取指定IO口某个引脚的输出值 ,也就是读取寄存器ODR相应位的值
② GPIO_ReadOutputData()函数是读取指定IO口16个引脚的输出值, 也就是读取寄存器ODR的值
1. RCC_APB2PeriphClockCmd()函数
n 是使能GPIOx对应的外设时钟 n 例如:使能GPIOB和GPIOC时钟
2. GPIO_Init()函数
n 是初始化(配置)GPIO的模式和速度,也就是设置相应GPIO的CRL和 CRH寄存器值
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n 又如:GPIOC.9引脚输出低电平的代码是: GPIO_ReSetBits (GPIOC, GPIO_Pin_9);
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 输入输出函数
5. GPIO_WriteBit ()和GPIO_Write ()函数
n 例如:读取GPIOE.5引脚输出值的代码是: GPIO_ReadOutputDataBit(GPIOE, GPIO_Pin_5);
n 又如:读取GPIOE口所有引脚输出值的代码是: GPIO_ReadOutputData(GPIOE);
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
STM32
项目二 跑马灯控制设计与实现
认识STM32的IO口
n STM32的IO端口寄存器
n STM32的每个IO端口都是由以下7个寄存器来控制
1. 配置模式的2个32位的端口配置寄存器CRL和CRH; 2. 2个32位的数据寄存器IDR和ODR; 3. 1个32位的置位/复位寄存器BSRR; 4. 1个16位的复位寄存器BRR; 5. 1个32位的锁存寄存器LCKR。
n STM32的IO端口操作
n 输入输出函数
4. GPIO_SetBits ()和GPIO_ResetBits ()函数
n GPIO_SetBits ()和GPIO_ResetBits ()是用来设置取指定IO口的引脚输 出高电平和低电平的,也就是设置寄存器BSRR、BRR的值
n 例如:GPIOC.8引脚输出高电平的代码是: GPIO_SetBits (GPIOC, GPIO_Pin_8);
R1
100
D1
LED-RED
R2
100
D2
LED-RED
U1
14
15
16
17
20
21
22
23
41
42
43
44
45
46
49
R3
R4
50
100
100
26
27
28
55
D3
D4
56ቤተ መጻሕፍቲ ባይዱ
LED-RED
LED-RED 57 58
59
61
62
29
30
33
34
35
STM32 36
PA0-WKUP
NRST
PA1
PA2
PC0
STM32
项目二 跑马灯控制设计与实现
项目二 跑马灯控制设计与实现
任务4 LED循环点亮控制
n 目标
n 使用STM32F103R6芯片的PB8 、PB9、 PB10和 PB11引脚分 别接4个LED的阴极,通过程序控制4个LED循环点亮。
n 如何控制这些LED循环点亮,关键在于如何控制STM32的IO口输 出,这是迈向STM32的第一步。
STM32
项目二 跑马灯控制设计与实现
认识STM32的IO口
n STM32的IO口可以由软件配置成8种模式
1. 浮空输入:IN_FLOATING; 2. 上拉输入:IPU; 3. 下拉输入:IPD; 4. 模拟输入:AIN; 5. 开漏输出:Out_OD; 6. 推挽输出:Out_PP; 7. 复用功能的推挽式输出:AF_PP; 8. 复用功能的开漏输出:AF_OD。
n 是用来读取指定IO口16个引脚的输入值,也是读取IDR寄存器的值 n 例如:读取GPIOB口输入值的代码是:
temp = GPIO_ReadInputData(GPIOB);
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 输入输出函数
n 又如:向GPIOC口写0x0FFFE的代码是: GPIO_Write(GPIOC, 0x0FFFE);
STM32
项目二 跑马灯控制设计与实现
LED循环点亮控制设计
n LED循环点亮控制电路设计
n 4个LED采用的是共阳极接法,其阴极分别接在STM32F103R6
芯片的PB8 、PB9、 PB10和 PB11引脚上。