本帖最后由 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, 下载次数: 1)
|