初识开发板:
比赛采用下方开发板,
芯片型号:STM32G431RBT6
编程语言:C语言
编程工具:MDK-ARM (HAL库编程)
工程生成软件:STM32CubeMX
关于开发板的详细信息:查看CT117E-M4产品手册.pdf
关于芯片的详细信息:
时钟树图 参考手册278页
内部资源 参考手册 75页
内部资源逻辑图 数据手册16页
一 LED_project
工程目的:
配置基础工程,点亮LED灯
注:SN74HC573是锁存驱动芯片,当PD2=1时,芯片锁存功能关闭,当PD2=0时,芯片锁存功能打开。(此处的1,0是数电上的逻辑电平)
步骤1,RCC配置
只需设置HSE为
因为以后的RCC配置也一样,所以后面的工程的RCC配置会省去
步骤2,SYS配置
只需设置SYS为
因为以后的SYS配置也一样,所以后面的工程的SYS配置会省去
步骤3,配置时钟树
本章实验的时钟一律参照下图配置。(80MHZ)
因为以后的时钟配置也一样,所以后面的工程的时钟配置会省去
步骤4,GPIO配置
选中控制LED灯的引脚,选择配置GPIO_Output模式
再点击System Core -> GPIO配置GPIO功能
设置PC8-16为推挽输出 不上下拉 低速 输出默认为低 自定义重命名(非必要操作)即可
步骤5,生成工程
此步骤以后也是相同,后面工程省略操作
最后点击
↓↓↓
步骤6,编写代码
在main.c中编写
int LED[8]={LED1_Pin,LED2_Pin,LED3_Pin,LED4_Pin,LED5_Pin,LED6_Pin,LED7_Pin,LED8_Pin};
void LED_UNLOCK(void)
{
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);//GPIO写状态函数
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}
此处省略初始化函数
int main(void)
{
while (1)
{
for(int i=0;i<8;i++)
{
HAL_GPIO_TogglePin(LED_GPIO_Port,LED[i]);//GPIO翻转函数
LED_UNLOCK();
HAL_Delay(100); //系统滴答定时器 延时函数 延时单位ms
}
}
}
实验效果:
LED流水灯依次点亮