前言
任务需求:使用stm32c8点亮两个led小灯并实现闪烁效果
注:本次任务包含CubeMX+hal库以及单独使用标准库两种写法完成代码构建。并最后通过Proteus仿真测试运行结果
提示:以下是本篇文章正文内容,下面案例可供参考
一、CubeMX生成keil5工程文件
工程配置:
时钟配置:
生成Keil5工程文件:注意:路径及名称不能有中文
hal库完善代码逻辑
注意:前面我们通过cubemx将工程硬件配置完毕,所以这里只需要完善软件逻辑层代码
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_RESET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8|GPIO_PIN_9,GPIO_PIN_SET);
HAL_Delay(500);
/* USER CODE BEGIN 3 */
}
编译并运行
二、标准库写法及完善代码逻辑
#include "stm32f10x.h"
void Delay(unsigned int count){
unsigned int i;
for(;count!=0;count--){
i=5000;
while(i--);
}
}
int main(){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIO时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;//PB引脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//配置PB为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//GPIOB速度为50Mhz
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化PB
GPIO_SetBits(GPIOB,GPIO_Pin_9);//PA9输出高电压,LED熄灭
while(1){
GPIO_ResetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9);//输出低电平,LED点亮
Delay(500);//延时500毫秒
GPIO_SetBits(GPIOB,GPIO_Pin_8|GPIO_Pin_9);//输出高电平,LED熄灭
Delay(500);//延时500毫秒
}
}
三、Proteus仿真测试
对之前两种写法生成的hex文件分布测试均完成本次目标
选择生成的hex文件并将时钟设置为8M
运行仿真:
上一篇:STM32_GPIO口
下一篇:STM32学习第四课:STM32 c语言学习基础4
推荐阅读最新更新时间:2024-10-31 11:16
设计资源 培训 开发板 精华推荐
- 使用 Analog Devices 的 LT1424CN8-9 的参考设计
- LT3755EUD-1 汽车降压-升压型 LED 驱动器的典型应用电路
- NCP300LSN20T1 2V 电压检测器的典型应用,用于具有附加迟滞的微处理器复位电路
- LT3804、36V-72V DC 至 3.3V/15A 和 1.8V/15A 双路输出隔离电源
- 电工中级焊接题_555振荡器_BT33F晶闸管调光电路
- 【训练营】立创EDA小灯-692962A
- LT1764EFE SCR 预稳压器的典型应用可提供跨线路变化的效率
- 【涂鸦智能】涂鸦智能温湿度计
- ADR5040A 2.048 Vout 负精密基准配置的典型应用
- 用于便携式的 12 位 8 通道 DAC