STM32 开发板入门教程 (一) GPIO
第一部份: GPIO 的基本应用和 IO 口的配置
第二部份: 外部中断的使用
--------------------------------------------------------------------------
1: 设计要求:
2: 硬件电路:

3: 软件程序设计:
(1) 根据要求配置 GPIOA 中的 PA0,PA1 为输出, PA3, PA8 为输入
对于下面程序中的
STM32 GPIO的十大优越功能综述
备注: 当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz、10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
STM32 GPIO端口的输出速度设置
备注: 共有8种模式,可以通过编程选择:
模式7和模式8需根据具体的复用功能决定。
void GPIO_Configuration(void)
{
}
(2) 打开 GPIOA 的时钟, 因为 STM32 是一个低功耗的 MCU , 每一个你使用的外围设备都需要单独开启时钟, 如果不开启将不能使用, 这个也是对于 STM32 初学者容易疏忽的地方
STM32共有5种时钟源,其中三种不同的时钟源可用作为驱动系统时钟(SYSCLK);
1、HSI 由内部8MHz RC振荡器产生,它是可以直接用来作为系统时钟或经2分频后作为PLLSRC输入。
HIS时钟频率在出厂时被校准在1%(25°C),在系统复位时,工厂校准值会被装载到时钟控制寄存器的HISCAL[7..0] 位。
用户可以通过更改HISCAL[4..0]来调整HSI频率。
另外时钟寄存器中有一个HSIRDY位用来指示HSI RC是不稳定工作,在时钟启过后,直到这个标志位置被硬件置1后,HSI RC时钟才被输出。
HSI RC时钟还可以用时钟寄存器中的HSION位来启动和关闭。
HSI时钟同时也是HSE晶体荡振器的备用时钟源。
使用HSE时钟,程序设置时钟参数流程:
1、将RCC寄存器重新设置为默认值
2、打开外部高速时钟晶振HSE
3、等待外部高速时钟晶振工作
4、设置AHB时钟
5、设置高速AHB时钟
6、设置低速速AHB时钟
7、设置PLL
8、打开PLL
9、等待PLL工作
10、设置系统时钟
11、判断是否PLL是系统时钟
12、打开要使用的外设时钟
具体设置请参考下面的文章
STM32时钟系统与软件配置
STM32的时钟系统分析
STM32 的时钟与RTC
(3) 设置外部中断, 所有的 GPIO 口都可以作为外部中断源. 具体可以参考下面这篇文章.
STM32中外部中断与外部事件
同样不要忘记打开时钟, 我们在打开 PA 口的时候已经加上了 RCC_APB2Periph_AFIO, 这里再提醒大家一下.
最后就是编写外部中断入口函数.
void EXTI3_IRQHandler(void)
{
}
不要忘记在中断函数处理完成后清掉标志位,不然会不停的进入中断.
(4) 编译与调试
评论