免责声明提示:写本文章的缘由:本人在秋招时复习STM32有关的知识点,便顺势记录下来。本文章的知识均属于各大论坛的大佬回答,其中也有我的一些补充,本文主要以自己对STM32的理解作为框架,并积极整理各个大佬的文章,因此属于借花献佛,也不存在任何牟利,分享的初衷是便于小伙伴们的求职和学习。文章目录免责声明一.MCU启动过程:二.GPIO基础知识(工作:2-3.6V,识别:-0.3-+1.16V,输出25ma)组成:保护二极管、上下拉电阻、施密特触发器(整形成方波),P/Nmos(通过vgs实现导通和关闭)2.1.GPIO的八种模式2.2.GPIO的使用三.Systick滴答定时器四.中断NIVC
步进电机是一种能够实现准确位置控制的电机,通常应用于需要高精度定位的场合,例如3D打印机、机器人和自动化系统等。而STM32F103是一种高性能、低功耗的微控制器,它拥有广泛的外设,适合用于控制各种电机。本文将介绍使用STM32F103控制DM542驱动器驱动42相步进电机的原理和可行性分析。一、STM32F103和DM542驱动器的介绍1.1STM32F103介绍STM32F103是一种基于ARMCortex-M3内核的微控制器,它采用了诸多优化技术,能够提供高性能和低功耗的处理能力。STM32F103的主要特点如下:1)ARMCortex-M3内核,最高工作频率72MHz,能够提供高性能的
STM32F103系列_OLED屏幕(SSD1306、SSD1315驱动)SPI驱动【DMA】(高刷)一、SSD1306和SSD1315二、电路原理图(SPI接法)三、STM32_SPI四、STM32_DMA五、代码OLED.cOLED.hOLED_Library.hDelay.h六、调用方法例:main.c七、该库函数的优缺点优点缺点一、SSD1306和SSD1315分辨率都是128*64,电压都在3.3V最佳,这两者可互相替代,但价格上SSD1315会比SSD1306便宜,毕竟用的人少。二、电路原理图(SPI接法)为了提高屏幕的刷新速度(帧率),SPI接法远远优于IIC接法。电路图如下:其
1、系统组成:STM32F103C8T6最小系统、S8050三极管、有源高电平触发蜂鸣器、ESP8266_01S模块、DHT11温湿度传感器、0.96OLED显示屏、BH1750光照度传感器、MQ2烟雾浓度传感器、LED灯、碳膜电阻(300欧)、独立按键、排针若干、杜邦线若干、微信小程序、USB转TTL串口烧录工具等。2、需要用到的软件:Keil5(STM32版本)、串口调试助手、Flymcu程序烧录软件、微信开发者工具、字模取模软件以及其它需要用到的软件。3、实现功能:(1)检测环境温湿度,并实时显示到OLED显示屏。当温湿度超过程序中设置的阈值,实现蜂鸣器报警。(2)检测环境光照强度,并实
最近在学习PWM+DMA配合生成可改变占空比的PWM波形。找了很多很多资料但是感觉对初学者不是很友善,只是提供了很多原理。这边使用的代码是固件库版的,也是学习STM32最基础的固件库代码了吧!预分频器(TIMx_PSC)自动重装载寄存器(TIMx_ARR)捕获/比较寄存器x(TIMx_CCRx)一、原理当PWM计数到CCR寄存器的设定值后触发对应DMA请求,将下次CCR值装入就是了。二、函数(结构体)PWM:时基初始化结构体、输出比较寄存器结构体DMA:DMA初始化结构体三、踩到的坑(真的是绝)1、确定定时器高级控制定时器(TIM1、TIM8)、通用定时器(TIMx)、基本定时器(TIM6、T
今天我想在MacOSMountainLion上升级php。我关注了MacTuts+教程和我执行那个长命令的步骤:./configure\--prefix=/usr\--mandir=/usr/share/man\--infodir=/usr/share/info\--sysconfdir=/private/etc\--with-apxs2=/usr/sbin/apxs\--enable-cli\--with-config-file-path=/etc\--with-libxml-dir=/usr\--with-openssl=/usr\--with-kerberos=/usr\--wi
今天我想在MacOSMountainLion上升级php。我关注了MacTuts+教程和我执行那个长命令的步骤:./configure\--prefix=/usr\--mandir=/usr/share/man\--infodir=/usr/share/info\--sysconfdir=/private/etc\--with-apxs2=/usr/sbin/apxs\--enable-cli\--with-config-file-path=/etc\--with-libxml-dir=/usr\--with-openssl=/usr\--with-kerberos=/usr\--wi
ST-link/v2仿真器在stm32f103c8t6核心板中烧录程序1、首先,电脑usb接口接上仿真器ST-LINK/V2,查看设备管理器。若连接正常,则出现上图红线部分2、ST-link/v2与stm32f103c8t6的连接,如下图对应引脚相连接即可。3、stm32f103c8t6烧录时单片机必须接电,我一般boot0,boot1都接0(这一步单片机的启动方式没懂)4、烧录程序STM32F103ZET6移植到STM32F103C8T6中第一步打开魔术棒,点击Device,选中STM32F103C8芯片第二步点击Target,晶振频率修改为8.0MHZ第三步将CORE里面的后缀为hd.s的
ST-link/v2仿真器在stm32f103c8t6核心板中烧录程序1、首先,电脑usb接口接上仿真器ST-LINK/V2,查看设备管理器。若连接正常,则出现上图红线部分2、ST-link/v2与stm32f103c8t6的连接,如下图对应引脚相连接即可。3、stm32f103c8t6烧录时单片机必须接电,我一般boot0,boot1都接0(这一步单片机的启动方式没懂)4、烧录程序STM32F103ZET6移植到STM32F103C8T6中第一步打开魔术棒,点击Device,选中STM32F103C8芯片第二步点击Target,晶振频率修改为8.0MHZ第三步将CORE里面的后缀为hd.s的
STM32F103-矩阵按键+串口打印基本介绍代码matrix_key.cmatrix_key.hmain.c项目演示基本介绍最近做了一个门禁卡小玩意,用到了4X4矩阵按键,在这里也单独的记录一下。矩阵按键图思路:矩阵按键读取键值写法多样,有一行一行的检测,也有是全部行检测,我这里是全部去扫。先扫描4列是否有按下,有再切换扫描所有行。第一步:先让行拉低(输出模式),去检测列(输入模式拉高) 如果检测到有第二步:让列拉低(输出模式),去检测行(输入模式拉高)第三步:这样就可以获取到哪按键按下了。代码matrix_key.c#include"matrix_key.h"#include"usar