从零点亮一个led灯
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灯相关推荐
- java gpio_单片机基础——使用GPIO输出点亮一个LED灯
1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...
- 使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯
使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯 软件下载 基于Arduino环境搭建 点亮一个LED灯 上传成功 修改代 ...
- 51单片机入门教程(1)——点亮一个LED灯
51单片机入门教程(1)--点亮一个LED灯 一.什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器 ...
- lajp linux教程,linux IMX6 汇编点亮一个LED灯
驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...
- C51单片机1.点亮一个LED灯
文章目录 一.实验原理 二.实验电路图 三.代码实现 一.实验原理 LED发光二极管具有单项导通性,通过5mA左右的电流就能正常点亮发光二极管,电流越大,LED的亮度就越强,但是如果通过的电流过大,就 ...
- 树莓派GPIO入门(一):点亮一个LED灯
一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...
- linux内核3.4 led驱动,JZ2440_V3_内核驱动程序_点亮一个LED灯(示例代码)
为了用内核驱动程序点亮一个LED灯,真是费尽周折,参考了韦东山的<嵌入式linux驱动开发完全手册>(以下简称<完全手册>)和网上很多人的blog,最终在@Carlos·Wei ...
- 如何利用CubeMX生成代码驱动STM32H750点亮一个LED灯
如何利用CubeMX生成代码驱动STM32H750点亮一个LED灯 CubeMX软件的配置 GPOI或者说引脚配置 第一步 第二步 工程文件的配置 最后一步:完整生成好的代码 CubeMX软件的配置 ...
- 3.基础实验-实验01-点亮一个LED灯
目录 3.1 实验01-点亮一个LED灯 3.1.1 STM32CubeMX软件配置 3.1.2 代码编写 3.1.3 编译与下载程序 3.1.4 查看实验结果 3.1 实验01-点亮一个LED灯 ...
最新文章
- scrapy配置文件操作核心API解读
- Samba服务器如何与Windows 95共享?
- Yii的Where条件
- 最新全国暴雨强度公式2019_2019-2020最新全国高中排名
- 第 12 章 执行引擎
- Java技术学习路线图
- Scalaz(49)- scalaz-stream: 深入了解-Sink/Channel
- 爬虫实例十 爬取百度贴吧小姐姐照片
- 关于网页编码的故事,你都清楚嘛?utf与gbk的关系
- 【软件测试学习笔记】黑盒测试方法及案例
- Python基础教程,Python入门教程(超详细)
- 【iOS】解决UITextField输入限制受中文自动联想影响的问题
- 数据分析中的缺失值处理
- Dest0g3 520迎新赛部分WP
- 我们为什么要搞长沙.NET技术社区(4)
- html required 无效,html5的input的required使用中遇到的问题及解决方法
- GAN系列学习(1)——前生今世
- Laravel Eloquent 关联
- 美苏太空竞赛历年卫星火箭发射以及历史事件介绍
- 如何将canvas转化为图片