经过自学后完成第一个Keil5程序,记录如下:
芯片为STM32G474RETx
#include "stm32g4xx.h"
static GPIO_InitTypeDef GPIO_InitStructure;
/*设置延时函数,目的使LED灯交替闪烁*/
void delay(uint32_t delay)
{
while(delay--);
}
/*通过查看电路板后查找原理图确定LD2的引脚在PA5*/
int main(void)
{
// RCC_AHB1PeriphClockCmd(RCCAHB1Periph_GPIOF,ENABLE);
// GPIO_InitTypeDef gpio_InitStruct;
__HAL_RCC_GPIOA_CLK_ENABLE();//端口A供电,使能端口的硬件时钟
/*初始化GPIO引脚*/
GPIO_InitStructure.Pin = GPIO_PIN_5;//第5根引脚
GPIO_InitStructure.Mode= GPIO_MODE_OUTPUT_PP;//输出模式,推挽输出
GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;//响应速度为高速
GPIO_InitStructure.Pull= GPIO_PULLUP;//上拉,原理图中好像有下拉电阻,应该选择不需要上下拉,为了安全选择上拉
HAL_GPIO_Init(GPIOA,&GPIO_InitStructure);//调用函数进行初始化
while(1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//PA5引脚输出高电平
delay(500000);//设置延时时间
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);//PA5引脚输出低电平
delay(500000);//设置延时时间
}
}