STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

STM32F103C8T6基础开发教程目录

  1. STM32F103C8T6基础开发教程(HAL库)—开发环境配置
  2. STM32F103C8T6基础开发教程(HAL库)—Keil添加注释的快捷键
  3. STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯
  4. STM32F103C8T6基础开发教程(HAL库)—LED灯交替闪烁
  5. STM32F103C8T6基础开发教程(HAL库)—LED灯呼吸闪烁
  6. STM32F103C8T6基础开发教程(HAL库)—等级划分LED灯亮度
  7. STM32F103C8T6基础开发教程(HAL库)—按键点亮LED灯
  8. STM32F103C8T6基础开发教程(HAL库)—定时器的使用
  9. STM32F103C8T6基础开发教程(HAL库)—串口发送与接收
  10. STM32F103C8T6基础开发教程(HAL库)—点亮OLED屏幕
  11. STM32F103C8T6基础开发教程(HAL库)—传感器使用
  12. STM32F103C8T6基础开发教程(HAL库)—读写内部FALSH
  13. STM32F103C8T6基础开发教程(HAL库)—LORA点对点通信

STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯

本节内容

  • 点亮第一颗LED灯
  • 编译并烧录HEX文件

STM32F103C8T6开发板笔者选用笔者团体自行设计的最小系统开发板,以后的章节教程均采用TWRS103B-V1.3作为教学开发板,为了大家更好的快速入门,建议购买支持一下笔者,当然,如果自已手上也有其他STM32F103C68T也可以参考笔者教程进行学习,功能都是一样的!

TWRS103B-V1.3最小系统开发板与传统STM32F103C8T6最小系统开发板区别

TWRSTM32F103C8T6最小系统开发板传统STM32C8T6最小系统开发板
支持USB下载不支持USB下载,需要下载器
PB5自带WS2812可编程RGB彩灯PC13自带可编程普通LED灯
引出PD0、PD1没有引出PD0、PD1
在这里插入图片描述在这里插入图片描述

本节内容要用到的材料

在这里插入图片描述

欢迎进入蒙学长小铺进行采购:淘宝店传送门
本文末尾处提供本节源码下载(免费下载)

1.点亮第一颗LED灯

1)STM32CubeMX配置

上节已叙述了CubeMX生成第一个工程,本节将不再过多的赘述,配置LED灯输出引脚即可。

(1)打开STM32CubeMX,单击ACCESS TO MCU SELECTOR

在这里插入图片描述

(2)CubeMX下完补丁包弹出芯片选择界面,在Commercial搜索框输入F103C8T6右下方会自动出现STM32F103C8T6,双击即可

在这里插入图片描述

(3)进入配置界面后单击System Core(系统的核心) → SYS → Debug → Serial Wire(这个是调试模式,如果不选Serial Wire则可能会使得无法使用Stlink或Jlink下载,如果你是用串口线下载,不调试,不选也没关系),这时PA13与PA14被用来做调试的LCK和DIO口,如果引脚不够用的情况可以不配置为LCK和DIO口,可以把PA13、PA14当做普通IO口使用(新手不建议)。

在这里插入图片描述

(4)单击System Core(系统的核心) → RCC(配置晶振) → High speed Clock(HSE)(高速晶振)→ Crystal/Ceramic Resonator(外部晶振,8M)(如果这里选Disable则无法使用外部高速晶振),这时PD0与PD1被用来做晶振的接口,如果不配置则可以把PD0、PD1当做普通IO口使用(新手建议跟着笔者还是进行配置)。

在这里插入图片描述

(5)依次单击Pinout & Configuration → System Core → GPIO →右边的PB9(因为笔者LEDD灯接的PB9所以这里选PB9,读者按照自己的要求自行设定) → GPIO_Output

在这里插入图片描述

(6)设置好之后PB9变成绿色,跟着笔者继续配置

在这里插入图片描述

(7)单击Clock Configuration在这里输入72,按下回车 → OK,自动配置时钟频率为72Mhz

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注:如果弹出这个窗口,不能使用72Mhz只能设置为64Mhz,那就是在RCC没有配置外部高速晶振,回去配置即可,如果还不行,那就是芯片选错了。
在这里插入图片描述

(8)单击Project Manager → Project ,配置准备要生成的工程

在这里插入图片描述

(9)单击Code Generator 单选Copy only the nacassary library files,勾选Generate peripheral…peripheral,上述的配置都设置好后就可以单击右上角的GENERATE CODE生成工程了。

在这里插入图片描述

(10)打开工程

在这里插入图片描述

1)Keli5编写代码

(1)打开工程后,进入Keli5软件,依次打开工程结构树,双击main.c开始写源码

切忌:一定要在BEGIN END里写代码,不然后面STM32CubeMX重新配置生成代码会删除BEGIN END外面的代码
在这里插入图片描述

(2)找到Drivers文件夹里的stm32f1xx_hal_gpio.c(双击打开),找到第465行的HAL_GPIO_WritrPin函数,复制其函数名,并在main方法里的wihile(1)调用

在这里插入图片描述

(3)把HAL_GPIO_WritrPin函数粘贴在,main方法里的wihile(1)

在这里插入图片描述

(4)左上角编译,0错误,0警告

在这里插入图片描述

2.程序烧录

1)方式一(ST-LINK/V2)

(1)ST-LINK/V2

TWRSTM32F103C8T6最小系统开发板
在这里插入图片描述接线照片
传统STM32F103C8T6最小系统开发板
在这里插入图片描述在这里插入图片描述

由于笔者不太理解传统STM32F103最小系统板为什么要把GND放在上面,交叉接线,每次接ST-LINK/V2的线都很繁琐,所以笔者团队按照ST-LINK/V2顺序来设计,大大提高开发效率。

(2)安装仿真器驱动

①本文末尾处下载并 解压STM32仿真器驱动压缩包在这里插入图片描述
②右键此电脑→管理
在这里插入图片描述
③设备管理器→STLink→更新驱动程序
在这里插入图片描述
④浏览
在这里插入图片描述
⑤找到刚刚解压的ST-LINK驱动
在这里插入图片描述
⑥下一步
在这里插入图片描述
⑦完成
在这里插入图片描述
⑧没有感叹号了在这里插入图片描述

(3)编译烧录程序

①F7编译
在这里插入图片描述
0错误,0警告
②单击魔法棒
在这里插入图片描述
③Debug→ST-Link Debugger→OK
在这里插入图片描述
④F8烧录程序
在这里插入图片描述
⑤正在烧录
在这里插入图片描述
④每次下载完之后按一次下开发板上的RES(复位按键)才能看到效果
在这里插入图片描述

实验效果

在这里插入图片描述
LED亮起,实验完成

  • 点亮第一颗LED灯
  • 编译并烧录HEX文件

2)方式二(串口下载)

(1)插上数据线

在这里插入图片描述

(2)下载并解压串口驱动

在这里插入图片描述

(3)打开安装串口驱动

在这里插入图片描述

(4)安装串口驱动

在这里插入图片描述
在这里插入图片描述

(5)右键此电脑 → 管理 →设备管理器 → 端口(COM和LTP)识别到串口,证明已经装好了,并记住该串口号

在这里插入图片描述
在这里插入图片描述

(6)下载并解压FlyMcu

在这里插入图片描述

(7)双击打开FlyMcu.exe

在这里插入图片描述

(8)双击打开FlyMcu.exe → 搜索串口 → 把bps改为460800比特率

在这里插入图片描述

(9)找到之前STM32CubeMX配置时的路径,Demo → MDK-ARM → Demo → 打开Demo.hex

在这里插入图片描述

(10)单击开始变成,这时右边显示开始连接…

在这里插入图片描述

(11)按下开发板上的RES和DOW

在这里插入图片描述

(12)程序下载,等待完成即可

在这里插入图片描述

实验效果

在这里插入图片描述
LED亮起,实验完成

  • 点亮第一颗LED灯
  • 编译并烧录HEX文件

本节主要代码

/**
 * Main application entry point.
 */
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		//SET:置为高电平  RESET:置为低电平  
		//由于笔者是用LED的负极接到单片机,
		//所以这里要用高电平才能点亮
		
		HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);	
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

本节需掌握函数

HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);		//点亮LED
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);		//熄灭LED

本节资源

百度网盘: 本节驱动及小工具
提取码:RSXC
百度网盘: 本节源码
提取码:RSXC

  • 61
    点赞
  • 398
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
STM32F103C8T6 HAL库是针对STM32F103C8T6开发板的硬件抽象层库。它包含了一系列的文件夹,如CORE、HALLIB、OBJ、PRO、SYSTEM和USER等。这个库可以为开发者提供方便的开发环境和开发工具,使得开发者能够更快速、更高效地进行STM32F103C8T6开发工作。使用STM32F103C8T6 HAL库开发者可以通过简单的函数调用来实现各种功能,如点亮LED、控制定时器、发送和接收串口数据等。 此外,还有一份基础开发教程,其中包括了配置开发环境、使用Keil进行开发点亮LED、控制定时器、串口通信和使用传感器等内容。这些教程可以帮助开发者快速入门STM32F103C8T6开发,掌握HAL库的使用方法。 如果你需要获取STM32F103C8T6 HAL库和相关的教程,你可以在文章末尾下载压缩包并解压,然后在Keil中导入STM32F103Pack包,或者直接从官方网站下载STM32CubeMX并安装,然后使用该软件生成你的第一个工程。同时,你还可以参考bsp.h头文件中的内容来初始化你的开发板。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [STM32F103C8T6 HAL库工程模板](https://download.csdn.net/download/qq_44744164/12918149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [STM32F103C8T6基础开发教程HAL库)—开发环境配置](https://blog.csdn.net/qq_38191568/article/details/126012144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [STM32F103C8T6移植uCOS基于HAL库](https://blog.csdn.net/weixin_46075497/article/details/121718285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的蒙学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值