📇 本类导航
本页自动汇总「stm32学习」分类下的全部笔记(含子分类),随笔记增删实时更新。
理解:输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数(可以想象成示波器,您细品就懂了!!!)
前提:接线和代码都没问题(一定要先检查完这个前提再往下排查,不然往下毫无意义)
看看是不是你的模块之间设置的IO口都是那一个,冲突了,错了几次,真的艹了!!!
一、下载Astyle
**链接:**https://pan.baidu.com/s/13usAzedx_G2IvIuOVmMHrQ?pwd=hsb0
提取码:hsb0
–来自百度网盘超级会员V4的分享二、下面针对工具的配置和使用:格式化当前文件、格式化所有的.c文件,格式化所有的.h文件、快捷方式设置
keil(MDK)中加载工具 Astyle(格式化当前文件工具设置)
- 在Astyle官网
- 下载完成后,解压到一个目录下,进入解压文件下找到binAstyle.exe
- 打开 keil(MDK) ,选择 Tools->Customize Tools Menu
- 第1步点击新建按钮,第步输入名称:格式化当前文件
- 第1步点击1位置,第2步点击2位置选择存放路径下的Astyle.exe
6.在下面位置输入命令(注意大小写):!E 输入完成后点击OK,会在tools里面出现如下图添加的工具
7.上述配置完成,我们现在使用,找到一个文件,选择Tools->格式化当前文件 。图一是未格式化 ,图二是格式化后**** 。
keil(MDK)中加载工具 Astyle(格式化.c和.h文件 工具设置)
- 配置和格式化当前文件一样。也是使用的是Astyle.exe
- 取名和另一个配置如图。.c文件配置:-n "$E.c" .h文件配置:"$E .h" *
keil(MDK)快捷键执行代码的快速格式化(快速格式化工具设置 )
Edit->Configuration切换到Shortcut Keys选项,选择格式化当前文件 ,点击Create Shortcut*****创建新的快捷键,在弹出的窗口按下你要设置的快捷键,然后保存退出,使用格式化就是自己设置的快捷键。如下是图文操作方式。****** ******1.打开设置。**** **Edit->Configuration->Shortcut Keys
2.按照如图的方式设置。图中第5步使用直接输入自己的命令。如:Ctrl + T
1.勾选 Reset and Run(主要)
2.不勾选Enable(第2点这里,有就勾,没有的话,不勾也无所谓的)
一、Keil5代码自动补全
对于一些stm32自带的一些库函数有时候名字很长,如果自己敲的话就很很麻烦,甚至有时候会敲错。好在keil有自动补全这一功能,大大提高了编程速度。
步骤:1、打开keil5,点击edit,configraution
选择跟编译相关的Text Completion,然后勾线第三个
测试结果是没有问题的。
二、keil加快编译速度
我们编程人员是很在意编译速度的,keil5在代码量大的时候,编译速度简直了。特别是使用STM32cubeMX生成工程的时候,编译速度龟速。这里教大家一个小技巧。
点击我们的魔术棒。进入output
把我们的文件信息这一选项取消勾选这个功能是使用go to definetion的,如果不勾选那肯定不行啊,我们编程经常用到go to definetion。别急,我们没了这个功能我们可以想别的办法,但是编译速度我们没法忍。
这是没有勾选之前,编译整整编译了三分钟!抓狂。这完全就是两个不同的世界。
勾选之后20秒钟就可以了
三、go to definetion问题如何解决
我们可以换一种方式来替代go to definetion。例如我们想看MX_GPIO_Init();这个函数
按Ctrl+F,就会弹出这个窗口。选择current project,他就会在整个工程里面找
这样他就会帮我们找到了,他会帮你包含这个名字的函数或者声明
总结
对于加快编译速度来说,这不失为一种方法,但是你得到某些东西的话,你总会失去某些东西,比如go to definetion。这里建议大家慎用。
注册机链接如下
**链接:**https://pan.baidu.com/s/1Ag8Aq19r_K7NVnGl9p5PMA?pwd=xim0
提取码:xim0
–来自百度网盘超级会员V4的分享① 打开Keil5软件
② 在打开的对话框中复制自己软件的ID,然后粘贴到注册机对应的位置。
③ 复制到注册机中后点击Generate(注意:Target选ARM)
④ 输入到软件对应的位置即可完成破解
OC理解:输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形(可以想象成信号发生器,您细品就懂了!!!)
PWM简介
(上图中Ts的值从第二个图中可以看出,代表一个高低电平变换周期的时间;Ton代表一个高低电平变换周期内高电平所占的时间)
PWM核心思想:天下武功,唯快不破,只要我闪的足够快,你就发现不了我到底是闪着亮的,还是一个正常的、平稳的亮度
(注意:使用PWM必须是在一个惯性的系统中)
ps:①:LED在熄灭的时候,由于余晖和人眼视觉暂留现象,LED不会立马熄灭,而是有一定的惯性,过一小段时间才会熄灭
②:当电机断电时,电机的转动不会立马停止,而是有一定的惯性,过一会才停)
PWM参数计算
1、获取安装包,链接如下:
**链接:**https://pan.baidu.com/s/1p4d7C_iwPF46ReDbf-SHVg?pwd=ml3e
提取码:ml3e
–来自百度网盘超级会员V4的分享2、开始安装
①:下载好pads9.5.iso之后,鼠标右击软件压缩包,选择“解压到pads9.5”
②:打开解压后的文件夹,鼠标右击“PADS9.5_mib.exe”选择“以管理员身份运行”。
③:然后按照上图所示的PDAS9.5安装说明.doc文档安装即可⚠️非必要不要更改它指定的安装路径,直接默认就好,然后不断的 next,虽然安装在 C 盘,但没办法了,因为它环境变量啥的都会自动给你生成C盘的那个路径,贼傻B 反正
==注意:非必要,不要执行下图所示的东西,不然环境变量Path里面的东西都给你整没==
(嫌无聊直接看最后一行的结论)
一、原理
1.按键类型
现在市场上大部分采用的都是这种按键按钮微动开关,这个开关使用简单、价格便宜。
2.按键消抖
因为按键按下和弹起这段时间会产生抖动现象,该现象会导致按键扫描误判。按键按下的瞬间和弹起的瞬间都会产生一个10ms的抖动时间,我们要在按键第一次判断为按下的时候,延时10ms再对它进行一下判断,如果判断结果还是为按下,我们这里认为按键此时被按下,松手检测直接用一个while循环等待既可,当松开按键,while的条件为假 退出循环。此时视为按键被松开。
3.IO口输入配置
IO口的输入模式有四种,分别为: GPIO_Mode_AIN = 0x0, // 模拟输入 GPIO_Mode_IN_FLOATING = 0x04, // 浮空输入 GPIO_Mode_IPD = 0x28, // 下拉输入 GPIO_Mode_IPU = 0x48, // 上拉输入总结:
①:模拟和浮空输入都不适合于按键,下拉输入默认低电平,上拉输入默认高电平
②:对于按键来说,选择上拉还是下拉,完全取决于按键电路是接地还是接VCC,接地选上拉,反之选下拉。
!!!接地选上拉,反之选下拉 !!!
这两端任意哪一端接VCC/GND都可以,但是必须是在一条直线上的才是一对,另一端接控制的 I/O口, I/O口实际的逻辑按照上面那句话的结论来写即可
报错示意图如下:
开始排查
①:确认ST-LINK与stm32芯片的四个引脚连接是否正确(这一步至关重要,先排查完这一步才往下走,不然都是浪费时间!!!)
②:按照如下示意图进行操作
确认一下②那个地方是否是ST-Link Debugger
stm32F103C8T6芯片
①只有TIM 1,2,3,4 4个定时器
- Reset是给低电平,Set是给高电平
- 代码提示快捷键:Ctrl+Alt+空格
- GPIO设置好了之后默认输出低电平,GPIO就是单片机与外部设备通信的接口,用来读取外部设备的信号或者控制外部设备的状态
- 推挽模式和开漏模式:推挽输出高低电平均有驱动能力,开漏输出高电平相当于高阻态,没有驱动能力,低电平有驱动能力(所以一般用推挽模式,特殊的时候才用开漏模式)
- 三级管:指向基极的是PNP型,从基极指出的是NPN型,PNP型:基极给低电平导通,高电平断开,NPN型:基极给高电平导通,低电平断开
- 32里面中断的函数不是像51一样加一个interrupt小尾巴,是以函数名为标识符的,也就是说函数名不能打错
- 总线、外设
把接收模式改成文本模式即可
很简单,将下面链接里面的文件放入到自己的Keil安装路径→UV4目录下即可,放入之后,需要*==重新启动keil软件==*
提取码:o58k
–来自百度网盘超级会员V4的分享目录示例图
使用场景
用于在OLED上显示中文
一、下载软件包
pctolcd2002.zip
把压缩包下载下来二、解压缩
解压缩之后的目录结构如下图所示
双击PCtoLCD2002.exe
三、配置
点击选项
选择C51格式,并点击确定(必须要点击确定之后才生效)
回到主界面,选择对应的字宽和字高(这里的字宽和字高要与代码里面的显示逻辑对应上,不然显示的会很奇怪)
四、生成字膜
在①中输入需要生成字膜的文本,点击生成字膜,然后复制矩形框里面的内容到代码里面即可
**链接:**https://pan.baidu.com/s/1-M5NQkRW-qr_iaqW380BTg?pwd=m54n
提取码:m54n
–来自百度网盘超级会员V4的分享把压缩包解压之后会得到如下所示的目录结构
1. 安装keil
双击MDK524a.EXE,不断下一步,到选择安装路径时选择一下安装的路径即可
2. 对keil进行破解
详情看自己写的笔记,至于注册机,则是keygen_new2032.zip里面的一个软件,解压之后双击即可
3.安装芯片库
进入到支持包****目录,****会看到如下所示的目录结构
使用什么型号的芯片就双击安装哪个型号的芯片,我这里使用的是Keil.STM32F1xx_DFP.2.2.0.pack ,所以我双击Keil.STM32F1xx_DFP.2.2.0.pack,不断下一步,到选择安装路径时选择一下安装的路径即可
4.安装ST-LINK驱动(用来烧录用的)
进入到工具软件****目录,****会看到如下所示的目录结构
再双击进入STLINK Utility目录,再双击进入STM32 ST-LINK Utility v4.6.0目录,会看到如下所示的目录结构
双击setup.exe ,不断下一步,到选择安装路径时选择一下安装的路径即可
至此前期工作已经全部完成,完结撒花!!!5.测试环境
在Keil5 MDK目录中,进入到程序源码目录下,随便找一个项目




















































