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

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

  1. 点亮第一颗LED灯—树莓派篇

    点亮第一颗LED灯-树莓派篇 学习一种新编程语言的第一个程序往往是Hello World,那么在学习单片机方面的Hello World是什么呢,答案应该是点亮第一个LED灯.记得当初学习C51和STM ...

  2. 瑞萨开发记录01:点亮一颗LED灯(R5F104FEA芯片)

    01.点亮一颗LED灯 一.创建工程 二.查看原理图 三.工程配置 1.引脚复用 2.时钟配置 3.debug设置 4.fix settings完成配置 5.配置各个引脚功能 6.生成代码 四.编写代 ...

  3. STM32F103C8T6基础开发教程(HAL库)—开发环境配置

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  4. STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  5. STM32F103C8T6基础开发教程(HAL库)—Keil添加注释的快捷键

    STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...

  6. 1.STM32F103-点亮第一颗LED

    ​ 大家好啊,下面我来给大家介绍一下原理图.第一张图为LED灯的原理图,第二张为我的单片机原理图. D1是一颗发光二极管,这个二极管有竖线的位置是负极,没有竖线的位置是正极,淘宝上买的贴片二极管有颜色 ...

  7. 【CC2530授课笔记】① 点亮一颗LED灯及实现流水灯(51内核单片机)

    实验套件介绍 如图所示是我们的CC2530实验套件,从图上可以看出,板子中间有四个LED,分别是:LED3,LED4,LED1,LED2 课堂任务 ①通过编程控制LED3点亮 ②通过编程控制LED3闪 ...

  8. 利用单片机点亮一颗LED灯

    一.单片机简介 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上.相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备.概括的讲:一块芯片就成了一 ...

  9. 物联网国赛LORA模块开发教程(通用库)—Keil添加注释的快捷键

    LORA模块开发教程目录 物联网国赛LORA模块开发教程-开发环境配置 物联网国赛LORA模块开发教程-Keil添加注释的快捷键 物联网国赛LORA模块开发教程-点亮第一颗LED灯 物联网国赛LORA ...

最新文章

  1. SNDA(上海)招聘中、高级ASP.NET开发人员(2名)
  2. python使用del保留字定义一个函数-Python使用什么保留字定义一个函数。
  3. 页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置
  4. iView Input 输入框表单非空校验,默认值是 Number 类型校验失败
  5. java如何实例化集合_如何在java中实例化一个Queue对象?
  6. vim下如何去掉windows编辑的文件中的^M
  7. 用js代码判断质数_在 JS 中判断,并不是都要用 ===
  8. 墨菲定律与 IndexOutOfBoundsException(数组越界异常)
  9. php文档注释提取工具phpdocumentor的使用
  10. Qt: 监听文件夹QFileSystemWatcher;
  11. FTOUR2 - Free tour II
  12. Android 登陆界面Edittext
  13. 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V4.0 Android-Q-TD1】...
  14. 基于PYNQ-Z2的手写数字识别卷积加速器设计【持续更新】
  15. 暗黑复制服务器物品,暗黑2战网环境下复制dupe物品装备
  16. mysql写保护,sd卡有写保护怎么格式化
  17. 用origin画重叠柱状图 - 三维变化
  18. 腾讯开源运维 PaaS 平台
  19. php随浏览器大小变化,如何在将图像显示到浏览器之前使用php重新调整图像大小?...
  20. enc28j60 linux 驱动_linux enc28j60网卡驱动移植(硬件spi和模拟spi)

热门文章

  1. Centos(Linux)系统备份与还原
  2. ubuntu18.04自带的输入法数字键选择出现数字而不是中文
  3. Springboot疫苗接种管理系统毕业设计-附源码191451
  4. 峡谷之巅显示服务器更新,峡谷之巅更新最新资讯
  5. web前端大作业 (仿英雄联盟网站制作html css javascript) 学生dreamweaver网页设计作业
  6. centos7 Qt5.9.1 ucal_close_53错误解决
  7. cad编辑节点快捷键是什么_CAD常用的快捷键命令
  8. 这届勒索病毒,其实很有上进心呀
  9. 让linux脚本输出声音,即使在linux中没有麦克风,声音输出也会出现在声音输入中...
  10. (六十五)Android O StartService的 anr timeout 流程分析