草庐IT

STM32单片机入门学习笔记——定时器TIM第二部分

笔记整理自B站UP主江科大自化协教程《STM32入门教程-2023持续更新中》,所用单片机也为教程推荐单片机。大致内容第一部分:定时器基本定时的功能,定时器每隔这个时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的,比如要做一个时钟、秒表或者使用一些程序算法的时候都需要用到定时中断这个功能第二部分:定时器输出比较的功能,最常见的用途就是产生PWM波形,用于驱动电机等设备第三部分:定时器输入捕获的功能,使用输入buhuo这个模块来实现测量方波频率的例子第四部分:定时器的编码器接口,使用编码器接口能够更加方便地读取正交编码器的输出波形,在编码电机测速中,应用广泛使用定时器的外部时钟,可以提

从零开始用Nodejs搭建一个MQTT服务器,并且用stm32通过esp8266进行消息订阅和发布

从零开始用Nodejs搭建一个MQTT服务器,并且用stm32通过esp8266进行消息订阅和发布一、项目背景最近在做一个物联网项目,需要用到服务器进行数据的存储和数据的请求和发送,之前我用过onenet平台上的http服务,虽然能通过get和post请求进行数据的提交和发送,但是平台上的数据发生改变却不能主动推送给esp8266,与我此次的项目不符合,所以pass。然后我了解了下mqtt协议,它可以消息的发布和订阅实现服务器和esp8266的双向通信,而我之前又学过一些js,所以我就想能不能自己搭建一个mqtt服务器,最终还真的实现了。二、搭建mqtt服务器1.搭建开发环境安装nodejs,

【STM32】读写内部Flash初步使用

基于stm32f103,作为个人学习记录使用STM32芯片内部有一个FLASH存储器,它主要用于存储代码,在紧急状态下常常会使用内部FLASH存储关键记录;内部FLASH的构成STM32的内部FLASH包含主存储器、系统存储器以及选项字节区域大容量产品内部FLASH的构成(摘自《STM32F10x闪存编程参考手册》主存储器一般我们说STM32内部FLASH的时候,都是指这个主存储器区域,它是存储用户应用程序的空间,芯片型号说明中的256KFLASH、512KFLASH都是指这个区域的大小。主存储器分为256页,每页大小为2KB,共512KB。这个分页的概念,实质就是FLASH存储器的扇区,与其

串口屏(USART HMI)与STM32

目录一、前期准备二、串口屏上位机三、STM32软件编程一、前期准备1.STM32单片机2.HMIUSART串口屏本人使用使用的是陶晶驰的串口屏。型号为TJC4832T135_0113.USB转TTL串口模块电源板(CP2102芯片)(CH340也可以)二、串口屏上位机官网资料:USARTHMI资料中心可拖动左侧工具箱进行界面设计,常用文本、按钮、数字、切图等。右侧可修改相应的属性,一个工程中即使有多个页面,不能出现两个名字相同的控件。若移植其他例程,串口屏型号不一致,在上侧设备栏进行修改,具体见教程。三、STM32软件编程1、串口3配置波特率为9600(串口屏默认)2、hmi.c封装了STM3

STM32定时器详解——TIM详解

TIM简介1、TIM(Timer)定时器2、定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断3、16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时4、钟下可以实现最大59.65s的定时5、不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能6、根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型定时器类型STM32F03C8T6具有四个定时器基本定时器的结构图通用定时器的结构图查看一下引脚定义表高级定时器结构图定时中断基本结构图预分频器的时序计数器计数频率:CK_CNT=CK_PSC/(PS

【STM32笔记】STM32的串口数据收发基础(四)(USART DMA模式)

   在STM32中编写串口通信数据收发有三种方式:轮询模式(阻塞方式),中断模式(非阻塞方式)以及DMA模式。一.串口通信(DMA模式)   打开STM32CubeMX,前部分配置流程如串口数据收发基础(三)节里一样。配置好USART1的基本参数,开启定时器中断后,接下来就要开启USART1的DMA。设置好之后,设置存储路径,选择所用IDE,然后点击GENERATECODE创建工程,openproject打开工程进行全局编译。二.HAL库中串口收发的重要函数(DMA模式)  1.DMA模式下发送数据函数:HAL_UART_Transmit_DMA(UART_HandleTypeDef*hua

STM32实现PWM输出频率1kHz占空比50%的方波和呼吸灯

板子:野火指南者芯片:STM32f103VET6PWM通道:TIM3的通道1和通道3GPIO:PA6和PB0文章目录前言一、PWM输出1kHz方波的实现1.选一个可以输出PWM的GPIO2.写代码:初始化GPIO3.配置定时器模式4.下载程序观察现象二、呼吸灯的实现1.计算获取PWM数据表2.初始化GPIO3.配置NVIC4.配置TIM3模式总结前言本文主要讲需要怎么做,简要讲解原理,提供全部代码,有利于快速上手。一、PWM输出1kHz方波的实现1.选一个可以输出PWM的GPIO打开STM32f103VET6的芯片数据手册,打开目录Pinoutsandpindescriptions——High

STM32的GPIO操作(寄存器&HAL)

(注:此为乐某学习记录,若有出错的地方欢迎各位指出!)前言本人使用的开发板的芯片是STM32H743XIH6,所以外设也是根据此芯片来介绍。在使用HAL库配置的时候,需要安装STM32CubeMX。此软件可在ST官网下载,剩下的安装步骤比较简单,不会单独出篇进行讲解。STM32CubeMX下载网址:https://www.st.com/zh/development-tools/stm32cubemx.html一、什么是GPIO?可以做什么?GPIO是General Purpose Input/Output的简写,翻译为通用输入/输出。在STM32里是可以对其进行控制或读取的引脚,通俗点讲,可以

STM32 ICP、ISP、IAP、Bootloader、SWD、JTAG究竟是什么?它们之间有什么关系?

从代码写入单片机的方式上去区分主要分为3种:ICP、ISP、IAP一、ICP(InCircuitPrograming):在电路编程,可通过CPU的DebugAccessPort烧录代码,比如ARMCortex的DebugInterface主要是SWD(SerialWireDebug)或JTAG(JointTestActionGroup);ICP主要通过CPU的DAP(DebugAccessPort)烧录代码,下面以ARMCortex-M3/M4为例,展示DebugInterface如下: ARMCortex内部包含了CoreSight调试架构,CoreSight包括调试接口协议、调试总线协议、

蓝桥杯物联网竞赛_STM32L071_2_继电器控制

Stm32l071原理图:PA11与PA12连接着UNL2803ULN2803是一种集成电路芯片,通常被用作高电压和高电流负载的驱动器。ULN2803是一个达林顿阵列,当输入引脚(IN1至IN8)被连接到正电源时,相应的输出引脚(OUT1至OUT8)将会断开或保持在高阻抗状态。这意味着输出引脚不会提供任何电流或电压输出。当输入引脚被连接到正电源时,通常用于让外部组件(如微控制器或其他逻辑电路)控制输出引脚的状态。如果你想让输出引脚处于活跃状态,你需要将输入引脚连接到地或负电源。当PA11与PA12输入高电平,其对位引脚REALY1和REALY2输出就为低电平,反之输入为低,输出就为高当REAL