Stm32学习笔记一:stm32cubemx和keil5从零开始点亮一个LED灯

一、软件材料准备:stm32cubemx和keil5软件(下载方式可自行上网搜,这里不再详细叙述)

二、硬件材料准备:stlink-v2调试器(我的情况是已经装了驱动了)、杜邦线、stm32系统板

驱动网盘资源:

链接:https://pan.baidu.com/s/10FtTg39yIyhGFC-pYrWgGg
提取码:b73k
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V2的分享

STLINK/V2在线编程/编程器是stm8/32的很好的开发工具之一,他可以使用单线接口模块SWIM(用于stm8)和JTAG/串行线调试接口SWD(用于stm32)与目标板通信。连接图如下:

上图中stlink的SWCLK与SWDIO分别与系统板的CLK与DIO连接

三、CubeMX的使用及初始化(我的情况是已经安装了,安装教程可在网上找到)

我当时的情况是好久没用cubemax了,进去之后各种配置好了后点击“generate code”时无法生成代码,keil5软件没有启动,软件提示如下的情况:

“The Firmware Package(STM32Cube_FW_F1_V1.8.0)or one of its dependencies requiredby the Project is not available in your STM32CubeMX Repository”

上网查了好久都没有找到解决的办法,不过找到一个类似的,经过他的启示,我发现是固件库的文件地址出现了乱码,然而修改了之后依旧没有成功,最后发现打开cubemx时它会弹出一个让我更新的窗口,里面有可以重新修改固件库的地址,修改之后再进到cubemx的“Project manager”窗口时再在这里修改固件库的地址才能成功。

当上面画圈的固件库地址不再乱码时就成功了

1、CubeMX的初始化

(1)RCC时钟的设置。

将RCC始终设置为“Crystal/ceramic Resonator(水晶/陶瓷谐振器)”

(2)调试配置

将SYS中的Debug设置成Serial Wire(串口线)

(3)时钟树配置

Stm32f103c8t6的最高频率为72MHz

按上图配置就行,其中PLL是锁相环的意思(数电学过)

(4)项目配置


上图中打勾的地方都要选上,最后点击“Generate code”就能打开keil5并生成代码了。

四、查看项目文件

1、.ioc文件

2、Driver文件夹


3、“MDK-ARM”文件夹是STM32CubeMX软件针对MDK-ARM集成开发环境生成的项目开发和调试的文件

4、“Inc”文件夹和“Src”文件夹

五、keil5的使用及项目组介绍

1、keil5常用功能

2、项目组介绍

(1)Application/MDK-ARM组

该组添加有“startup_stm32f103xb.s”文件。该文件提供了stm32f103c8t6的中断矢量列表,供MDK-ARM工具链调用。该文件在微控制器启动后会被调用,用于初始化sp(堆栈指针寄存器)寄存器和pc(程序计数器)寄存器,设置中断向量入口,并最终调用主函数。在该文件中,可以找到不同的中断服务函数的名称列表,如外设“USART1”的中断服务函数的名称为“USART1_IRQHandle”。

(2)Application/User组

该组的文件前面已介绍过,这里需要说明的是其中的main.c文件和stm32f1xx_it.c文件,我们可以将自行定义的程序代码添加到其中。

(3)Drivers/STM32F1XX_HAL_Driver组

该组包含的是相应的外设驱动源文件,也就是我们所说的HAL库文件。比如,当使用I/O口驱动外围电路时,需要使用里面的“stm32f1xx_hal_gpio.c”源文件。另外在使用gpio时,必须使能gpio的时钟,所以还需要使用里面的“stm32f1xx_hal_rcc.h”文件。

(6)Drivers/CMSIS组:添加有“system_stm32f1xx.c”源文件。该文件是Cortex-M0器件外设访问层系统源文件,用于系统时钟配置,主要用于定义系统时钟源以及低速,高速时钟总线的频率等。

3、烧写注意事项

注意:烧写时点击界面上的Dowmload后立马同时点击系统版的复位键,这样才能烧写成功

由于我的系统板上的led灯是连在PA1引脚的,所以我只需要设置PA1引脚的GPIO Output level为low低电平即可,“GPIO Mode”设置成Output push pull(推免输出),GPIO pull-up/pull down(有开关是才需要设置)设置成no pul up and no pull down。GPIO pull-up/pull down(有开关是才需要设置)设置成no pul up and no pull down。

从零点亮一个led灯相关推荐

  1. java gpio_单片机基础——使用GPIO输出点亮一个LED灯

    1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  2. 使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯

    使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯 软件下载 基于Arduino环境搭建 点亮一个LED灯 上传成功 修改代 ...

  3. 51单片机入门教程(1)——点亮一个LED灯

    51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...

  4. lajp linux教程,linux IMX6 汇编点亮一个LED灯

    驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...

  5. C51单片机1.点亮一个LED灯

    文章目录 一.实验原理 二.实验电路图 三.代码实现 一.实验原理 LED发光二极管具有单项导通性,通过5mA左右的电流就能正常点亮发光二极管,电流越大,LED的亮度就越强,但是如果通过的电流过大,就 ...

  6. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

  7. linux内核3.4 led驱动,JZ2440_V3_内核驱动程序_点亮一个LED灯(示例代码)

    为了用内核驱动程序点亮一个LED灯,真是费尽周折,参考了韦东山的<嵌入式linux驱动开发完全手册>(以下简称<完全手册>)和网上很多人的blog,最终在@Carlos·Wei ...

  8. 如何利用CubeMX生成代码驱动STM32H750点亮一个LED灯

    如何利用CubeMX生成代码驱动STM32H750点亮一个LED灯 CubeMX软件的配置 GPOI或者说引脚配置 第一步 第二步 工程文件的配置 最后一步:完整生成好的代码 CubeMX软件的配置 ...

  9. 3.基础实验-实验01-点亮一个LED灯

    目录 3.1 实验01-点亮一个LED灯 3.1.1 STM32CubeMX软件配置 ​3.1.2 代码编写 3.1.3 编译与下载程序 3.1.4 查看实验结果 3.1 实验01-点亮一个LED灯 ...

最新文章

  1. scrapy配置文件操作核心API解读
  2. Samba服务器如何与Windows 95共享?
  3. Yii的Where条件
  4. 最新全国暴雨强度公式2019_2019-2020最新全国高中排名
  5. 第 12 章 执行引擎
  6. Java技术学习路线图
  7. Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel
  8. 爬虫实例十 爬取百度贴吧小姐姐照片
  9. 关于网页编码的故事,你都清楚嘛?utf与gbk的关系
  10. 【软件测试学习笔记】黑盒测试方法及案例
  11. Python基础教程,Python入门教程(超详细)
  12. 【iOS】解决UITextField输入限制受中文自动联想影响的问题
  13. 数据分析中的缺失值处理
  14. Dest0g3 520迎新赛部分WP
  15. 我们为什么要搞长沙.NET技术社区(4)
  16. html required 无效,html5的input的required使用中遇到的问题及解决方法
  17. GAN系列学习(1)——前生今世
  18. Laravel Eloquent 关联
  19. 美苏太空竞赛历年卫星火箭发射以及历史事件介绍
  20. 如何将canvas转化为图片

热门文章

  1. 130 个相见恨晚的超实用网站,一次性分享出来
  2. 在线客服服务干货:如何与客户进行有效沟通?
  3. 减少2021年度汇算清缴补税
  4. p29 p30 p31 p32
  5. php phpmailer 发送邮件
  6. 什么是数据中台系统 - whale帷幄
  7. vue.js和vue.main.js下载地址
  8. 通信工程考研英语复试专有名词翻译
  9. 16个最佳PSD文件下载网站
  10. marvin框架_告别开源先驱Marvin Minsky