STM32学习记录1

本文介绍了在2023年6月30日进行STM32HAL库BSP开发过程中遇到的GPIO初始化和JLink下载问题。当遇到JTAG链路中找不到Cortex-M设备时,解决方案是将Linker设置中的Port改为SW,并降低MaxClock速度。代码示例展示了如何初始化LEDGPIO引脚,以及使用HAL库控制LED的状态。
摘要由CSDN通过智能技术生成

2023年6月30日
STM32 HAL库 BSP 开发过程;
学习了GPIO输入、输出;
jlink下载显示:
No Cortex-M Device found in JTAG chain
Please check the JTAG cable and the connected devices.
解决办法:Linker-settings-Port 改成SW,Max Clock 降低。

bsp_led.c

#include ".\bsp_led.h"            //这里包含头文件的时需要特别注意路径
//初始化LED的GPIO引脚函数实现
void LED_GPIO_Init(void)
{
    GPIO_InitTypeDef LED_GPIO_Init;//初始化结构体  实例
    __HAL_RCC_GPIOC_CLK_ENABLE();   //1.初始化时钟

    LED_GPIO_Init.Mode = GPIO_MODE_OUTPUT_PP; //2.配置GPIO的各项属性
    LED_GPIO_Init.Pin = GPIO_PIN_5;         //配置引脚PB5(不同引脚用PB5|PB6)用与
    LED_GPIO_Init.Pull = GPIO_NOPULL;
    LED_GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW;

    HAL_GPIO_Init(GPIOC, &LED_GPIO_Init);   //3.对GPIO进行初始化    LED_GPIO_Init为指针变量用地址符

}

bsp_led.h

#ifndef __BSP_LED_H__
#define __BSP_LED_H__
#include "stm32f1xx.h"
//初始化LED的GPIO引脚
void LED_GPIO_Init(void);

//使用宏定义来调用GPIO的函数
#define LED_ON          do{HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);} while(0)
#define LED_OFF         do{HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);} while(0)
#define LED_TOGGLE      do{HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);} while(0)

//#define LED_GREEN_ON        do{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET);} while(0)
//#define LED_GREEN_OFF       do{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET);} while(0)
//#define LED_GREEN_TOGGLE    do{HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_5);} while(0)
#endif
先将代码保存为.c和.h的格式,然后新建分组,添加路径。

 

 这里修改名字

 

这里添加.c和.h文件 

最下面那个是保存路径

#include ".\bsp_led.h"

头文件添加看是否能正常跳转

#ifndef __BSP_LED_H__
#define __BSP_LED_H__

#endif

这个是预定义

要在main.c文件里添加头文件

#include ".\bsp_led.h"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值