【STM32cubemx】1点亮led

本文介绍了如何使用Keil5开发环境、STM32CubeMX配置STM32C8T6最小系统板,通过DAPLink连接,实现LED控制,包括接线、PB2配置、设置72MHz时钟以及自动重启功能。最终现象是板子上蓝色LED亮起。

1、使用工具:keil5,stm32cubemx

stm32c8t6最小系统板、daplink

2、接线

daplink                  c8t6

GND------------------CND

CLK-------------------SWSCK

DIO--------------------SWDIO

3V3--------------------3V3

注意是用一根typec的数据线连接link,不是开发板!!!

3、cubemx配置

top0:芯片包正确下载

确保F1的芯片包正确下载,如图所示(如果板子不一样,按自己型号下载)

top1配置cubemx

led接在PB2上,二极管一端是GND即低电平,只需PB2输出一个高电平即1,led就会被点亮,同理,如果输出低电平就会灭

直接设置最大72MHZ

勾选Reset and Run自动运行,否则重现上电或者按板子上Reset程序运行

3、现象

板子上蓝色灯亮

### 使用STM32CubeMX配置中断以实现LED点亮 #### 中断的基础概念 中断是一种硬件机制,允许外部设备或内部事件触发CPU暂停当前执行的任务并处理特定的服务程序。对于嵌入式系统而言,中断可以提高系统的响应速度和效率[^2]。 #### 工程创建与初始化设置 启动STM32CubeMX软件后,选择目标单片机型号(如stm32f103c8t6),点击“Start Project”。进入项目界面后,在Pinout&Configuration标签页下找到需要连接按键的IO口,并将其功能设定为External Interrupt Line模式;同样地,针对用于驱动LED的GPIO端口,则应设为Output Push-pull输出类型。 #### 配置NVIC参数 转到System Core下的 NVIC (Nested Vectored Interrupt Controller),从中选取对应于所选按键输入线路上映射的具体IRQ Handler名称(比如EXTI0_IRQHandler代表PA0引脚触发的外部中断请求处理器),调整其Preemption Priority抢占优先级数值以及Subpriority子优先级值来满足实际需求中的多任务调度逻辑关系。 #### 生成代码框架 完成上述所有必要的外设初始化工作之后,切换至Project Manager页面填写好编译器版本号等相关信息项再按下Generate Code按钮自动生成适用于Keil uVision环境运行的一整套源文件结构体。 #### 编写回调函数 打开由STM32CubeMX工具链自动产生的`main.c`文档,在其中定义一个名为`HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)`的新方法用来接收来自指定通道上的边沿检测信号通知事件。当监测到有效下降沿变化时即刻改变关联着LED指示灯状态的那个通用目的I/O管脚的数据方向从而达到控制发光的目的。 ```c void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(GPIO_Pin == KEY_BUTTON_PIN){ // 假定KEY_BUTTON_PIN是你之前定义过的宏名表示具体哪一个针脚作为开关用途 static uint8_t led_state = RESET; if(RESET == led_state){ HAL_GPIO_WritePin(LED_PORT, LED_PIN , SET); led_state = SET; }else{ HAL_GPIO_WritePin(LED_PORT, LED_PIN , RESET); led_state ^= 1; /* 利用异或运算符翻转变量led_state */ } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值