前言
任务需求:使用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-11-17 02:16
设计资源 培训 开发板 精华推荐
- 使用 Richtek Technology Corporation 的 RT8237E 的参考设计
- 用于工业应用的 C8051F546 MCU 的 C8051F540DK、8051 开发系统
- 具有误差放大器斜率补偿的 LT124XIS8 高速电流模式脉宽调制器的典型应用电路
- 基于AT32F435RGT7的LORA物联网射频终端
- LT3470ETS8 5V 降压转换器的典型应用电路
- LT8315IFE 宽输入范围非隔离式 12V 降压转换器的典型应用电路
- TC78B015FTG 三相无刷直流电机驱动器评估板
- 极致性价比的电动滑板接收器 esp32
- 使用 Analog Devices 的 ADR363A 的参考设计
- 使用 Analog Devices 的 LTC1159CG-5 的参考设计
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况