RM校内赛就在眼前,但是咸鱼了一个寒假,对比赛毫无准备,肿么办??

莫得事!因为我们给大噶带来了新一波干货!今天介绍的STM32单片机,能统领“虾兵蟹将”,

大噶好我们是虾兵蟹将( • ̀ω•́ )✧

成为“海的男人”“天兵天将”

这些大作,其实都是机协之前发的干货哦,感兴趣的话可以翻翻公众号的历史记录瞅多几眼ヾ(◍°∇°◍)ノ゙

言归正传,今天给大家介绍一下STM32的几个常用功能

好让大家在校内赛神挡杀神取得优异成绩!

1.GPIO的常用工作模式及其功能

GPIO(通用输入输出),是 STM32 的一种外设,与大部分芯片引脚直接挂钩,以STM32F103ZET6 芯片为例,总共有 7 个 GPIO 外设,定义为 GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF 以及 GPIOG,每个 GPIO 外设有 16 个引脚,定义为 PA0..PA15、PB0..PB15 等等,总共有 112 个 GPIO 引脚。

为实现不同工作条件要求,GPIO 有8 种工作模式,通过配置 GPIOx_CRL 或GPIOx_CRH 寄存器可以非常方便控制。GPIO 最简单的功能是输出高低电平,GPIO 还可以被设置为输入功能,用于读取按键等输入信号。

可以看到密密麻麻的引脚哦

常用输入模式

输入浮空:该模式也是 STM32 复位之后默认模式。浮空就是逻辑器件与引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。这种设置在数据传输时用的比较多。

输入上拉/下拉:上拉就是把电位拉高,比如拉到VCC(电源电压),将不确定的信号通过一个电阻嵌位在高电平。电阻同时起到限流的作用。下拉就相反,通过一个电阻把电位拉低,比如拉到GND,将不确定的信号通过一个电阻嵌位在低电平。

应用实例(按键检测)

利用 GPIO 的输入功能可以非常方便读取到当前按键状态。按键检测主要用上拉或者下拉输入,例如按键的一端接GPIO,另一边接地,设置该GPIO为上拉输入,按键按下时GPIO电平会由高变低,可以准确地检测按键是否被按下。

常用输出模式

推挽通用输出:可以输出高,低电平,连接数字器件,推拉式输出级即提高电路的负载能力,又提高开关速度。

开漏通用输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。

应用实例(点灯)

LED灯连接到STM32的GPIO引脚,可以通过控制低电平(0)点亮,高电平(1)熄灭。点灯的编程要求里面就有,要将GPIO目标引脚设为推挽输出模式,再编写简单的测试程序,控制GPIO引脚输出高、低电平。

2.定时器输出PWM

PWM(脉宽调制)

就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。(打个比方,就是在电流的有效值不变的前提下,改变电流的峰值和周期等,使电流成为我们可以制作出来的类型)

PWM波的作用

利用改变脉冲的宽度或占空比,以调节输出电压或电流,在很多工程应用中,需要使用到PWM波,例如电机调速、温度控制调整功率等

如何用定时器输出PWM

(可以看具体举例,也可以看抽象程序,意思相同)

1.具体举例:例如:我想输出1.98V的电压,但是单片机只能输出3.3V高电平,0V低电平。PWM波是周期性的,那就在PWM波的一个周期t1内(包含了多个计时器中断周期t),比如1ms为周期,前0.6ms输出高电平,后0.4ms输出低电平,其效果就和1.98V一样了。改变高电平占PWM波周期的比例,也就是改变高电平所占的计时器中断周期个数n2(n2=t2/t),就能输出0到3.3V之间任意电压了。(n1=t1/t,t3为低电平所占时间,参数可对照下图)

2.更具体的定时器PWM输出流程图请看博文(链接:https://blog.csdn.net/u010755676/article/details/79763315)

3.中断

中断的定义:本来处于正常状态(比如我现在处于写程序状态),突然有个外部因素干扰(比如快递员打电话叫我去拿快递),然后马上处理干扰事项(跑下楼去签收快递),解决好后又回到原来正常状态(拿好快递后又开始写程序)。在中断产生后一般会去执行中断服务函数,实现特定任务(这里跑下来去签收快递就是中断服务函数内容)。

定时器中断

定时器中断是由单片机中的定时器溢出而申请的中断。

例如,我设置定时器的周期为1s,那么每隔1s都会产生定时器中断,并完成我所编程好的任务。

串口接收中断

串口通信一般最简单的有两个中断:串口接收中断、串口发送中断。实际上应用中常用串口接收中断,这样可以在监测到有外部设备对本机通过串口发送数据时就可以马上进入中断服务函数,在服务函数中接收数据。

4.USART串口通讯

定义:串口通讯是一种设备间很常用的串行通讯方式,串口按位发送和接收字节,尽管比按字节的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

通信协议是需要通信的双方所达成的一种约定,它对包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题作出统一规定,通信双方都必须共同遵守(就比如约定双方都通过电话交流,而且都要讲中文)。

串口形容一下就是一条车道,而并口通讯就是有8个车道同一时刻能传送8位(一个字节)数据。但是并不是说并口快,由于8位通道之间的互相干扰(串扰),传输时速度就受到了限制,传输容易出错。串口没有互相干扰。并口同时发送的数据量大,但要比串口慢。串口硬盘就是这样被人们重视的。

最常用的功能:利用串口来输出调试信息,从而达到帮助我们调试程序的目的。例如要检测can通信初始化有无成功,就编写程序使其每次初始化成功后会发一串文字给电脑,当有部分初始化不成功后就可以迅速发现。

结尾啦~

我们这次学习的几个功能中,

GPIO模式的选择是许多后续操作的基础步骤,

定时器输出PWM是电机调速很重要的一个方法,

中断是以后计时常用的手段,

串口调参更是精确调车的技能呀,

每个功能都灰常有用,大噶是不是都已经......

好的,这次的介绍就到这里啦,期待与你们的下次相见

٩(๑❛ᴗ❛๑)۶

文案:郭逸豪

排版:郭逸豪

stm32温度控制按键_干货 | STM32常用功能介绍相关推荐

  1. 大白菜软件常用功能介绍

    大白菜软件常用功能介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.刻录光盘介绍 1.选择你需要的刻录的光盘 2.点击刻录光盘 3.确认之后点击刻录 4.等待刻录完成 转载于 ...

  2. 程序猿二三事之工具使用-Eclipse调试Java常用功能介绍

    [ TOC ] 调试常用功能介绍 日常java开发中实际写代码的时间并不会很多,花在整理思路,代码重构,调试bug会占用很大部分时间. 熟练掌握调试工具,了解调试相关技巧,是java开发中减少调试时间 ...

  3. Cloudconpare常用功能介绍

    Cloudconpare常用功能 介绍 加载 保存 颜色 渲染 裁剪 合并 滤波 克隆 旋转 抽稀 量距 介绍 Cloudconpare是一款很好用的点云数据处理软件,完全可以满足平时的点云学习要求, ...

  4. DiskGenius常用功能介绍

    DiskGenius常用功能介绍 DiskGenius是我非常喜欢的一个磁盘分区工具,具有快速分区,分区大小调整,磁盘坏道检测等功能,可谓系统安装必备软件. 常用功能: 1.磁盘分区: 2.磁盘坏道检 ...

  5. Android开发自学笔记—1.1(番外)AndroidStudio常用功能介绍

    Android开发自学笔记-1.1(番外)AndroidStudio常用功能介绍 http://www.cnblogs.com/boyliupan/p/4729736.html#_labelTop 回 ...

  6. [转]WebPack 常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

  7. nginx常用功能介绍

    一.什么是nginx? nginx是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器.主要有反向代理,负载均衡的功能. 官方网站为:http://nginx.or ...

  8. android 最新功能介绍,Android Studio 常用功能介绍

    界面介绍 讲解1 这个界面,显示了我们使用 Android Studio时经常接触到的功能面板. Project 面板. 用于浏览项目文件. Project 面板会显示当前的所有的 module .  ...

  9. WebPack常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

最新文章

  1. 学会动态丨中国人工智能学会重磅发布《2018人工智能产业创新评估白皮书》
  2. ADS1.2安装教程
  3. 成本直降50%,下一代网关震撼发布
  4. 【web前端优化】前端无优化,庸人自扰之!
  5. 四个人过桥的题目_云南的几种“勾魂”特产,舌尖上的美味,让人回味无穷,你吃过吗...
  6. 使用自己的域名解析CSDN博客
  7. mysqldump 导出数据库出错
  8. C语言求一个文件的长度,求二进制文件的长度
  9. mcp证书有什么用_初级会计职称有什么用?考下证书可以做什么工作?
  10. 互联网创业的重重风险
  11. 【分享】5s管理之实现仓库有效管理的7个步骤
  12. php调用手写板,手写板使用起来方便、快捷 其原理你知道吗?
  13. 关于JavaScript打印去掉页眉页脚
  14. 2015年工作总结——①名IT女的日常
  15. java判断硬盘为固态硬盘_怎么看电脑是不是固态硬盘|查询电脑硬盘是HDD还是SSD的方法-系统城...
  16. Win10 日期/时间修改
  17. 《阿凡达2》中的图鲲,我找到了现实中的原型!
  18. wikioi 丘比特的烦恼 (最大权匹配)
  19. 逢7必过或拍7游戏(七的倍数、带7的)用C语言实现
  20. 读书笔记——数学之美

热门文章

  1. SAP Fiori 修改catalog group名称的技术实现
  2. 我做的小学二年级公开课《生命,生态和安全》的教案
  3. SAP CRM Fiori应用 my Opportunity的扩展
  4. SAP UI5 footerbar按钮高亮实现逻辑
  5. debug LUW1 - do binding workflow
  6. Enable trace in Resale Order application
  7. Use tcode ST01 to log authorization check
  8. SAP OData错误消息:Invalid format (return structure): Property Name ‘Guid‘, Property Value ‘000000
  9. @capire/common is not needed at runtime at all
  10. python运行程序的快捷键_在Python集成开发环境中,可使用快捷键()运行程序。...