本帖最后由 gaoyang9992006 于 2020-11-19 23:09 编辑
第一次接触,当然要做最基本的,完成工程的建立,点亮LED,学会使用GPIO是最基本的操作。好在官方提供的有例子,可以很容易了解如何使用一个GPIO管脚。
通过官方的资料发现,开发板上的两个LED是共阳极接到VCC的,阴极是插针,因此只需要将插针连接到你想要的GPIO管脚,并在这个管脚给一个低电平即可点亮。
在这里我使用PA0和PA2管脚,通过开发板赠送的杜邦线连接他们。
下载并安装开发软件MounRiver Studio
创建新的工程,然后在默认生成的模板上修改代码即可。
然后编写程序,首先应考虑使用GPIO的输出模式
void GPIO_LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
编译后,我们可以定位到这些头文件预定义好的宏或变量,可以看看同组的都有哪些选项可以设置,这一点很重要。
然后就是点亮一个LED,然后延时,然后熄灭,然后再延时,这样就可以一闪一闪了。
完整代码如下
#include "debug.h"
void GPIO_LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Return : None
*******************************************************************************/
int main(void)
{
Delay_Init();
GPIO_LED_Init();
while(1)
{
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
Delay_Ms(500);
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
Delay_Ms(500);
GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_SET);
Delay_Ms(500);
GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_RESET);
Delay_Ms(500);
}
}
按照开发板送的卡片的连接图连接烧录器与开发板,编译后烧录到开发板,这个时候发现两个红色的LED灯开始闪烁。
最后奉上工程文件
001_GPIO_Blink.zip
(154.2 KB)
|