草庐IT

STM32F103C8T6蓝牙OTA教程

一、准备与简介1.准备材料  文章使用的软硬件并不局限,下述仅作参考,文章的所有使用的工程可在文末获取(百度网盘+Github)1)STM32F103C8T6核心板2)下载器(PWLINK)3)蓝牙透传模块(HC-04)4)软件:Keil5MDK+SecureCRT(支持Ymodem协议传输的终端仿真软件)2.OTA简介  OTA:Over-The-Air,即通过无线通信网络进行固件或件的升级和更新的技术手段。通过OTA,用户可以通过无线网络直接下载和安装最新的软件版本,而无需连接到电脑或使用数据线进行更新[数据来源:CSDN-C知道模型训练的大型语言模型]。对单片机而言,简单的说就是我们无需

stm32F407学习DAY.14 在DMA模式下进行USART串口数据收发(正点原子例程为例)

目录一、DMA配置1、DMA1和DMA2的请求映射2、DMA挂载总线3、DMA相关库函数​4、DMA配置过程(以串口1为例)1)进行时钟使能2)等待DMA可配置3)初始化DMA(串口1的TX为DMA2数据流7通道4,RX为DMA2数据流5 通道4)a.DMA外设地址par:b.DMA存储器0地址mar:c.数据传输量ndtr:4)开启DMA数据传输(初始化函数后写)二、USART串口配置0、串口相关库函数1、串口发送与接收函数初始化思路 2、senddata和receivedata库函数(一般在主函数中调用)1)USART_SendData(USART_TypeDef*USARTx,uint1

STM32软件模拟实现IIC写入和读取AT24C02(STM32CubeMx配置)

模拟IIC原理了解IIC总线协议AT24C02器件STM32CubeMx配置工程生成及代码编写工程生成代码编写延时函数delay.c编写delay.h编写IIC函数实现IIC起始信号IIC停止信号应答信号数据的发送及读取iic函数头文件AT24C02的写/读函数AT24C02写函数AT24C02读函数main函数编写实现效果原理了解IIC总线协议IIC:InterIntegratedCircuit,集成电路总线,是一种同步串行半双工通信总线。在使用IIC时分为硬件IIC以及软件IIC,下图为两者的区别:在使用IIC前先来了解一下IIC总线结构图,即下图:从图中可以看出IIC有两个双向信号线,一

STM32锁芯片,解锁方法(J-LINK)

在烧写STM32时,不小心把usb口给弄掉了,然后就尴尬了,芯片被锁了。烧写的时候报错,如下:然后就搜了一下,大致有两个方法,第一种需要通过接3.3V到板子上BOOT0重新上电第二种是直接通过软件的方法解锁因为我们的板子不好拿出来,所以只能用第二种方法,我们用的是JLink,然后在JLinkARM的软件包里面的J-LinkSTM32Unlock软件,找不到安装位置就直接搜索,这里需要注意的是,然后先check一下自己的JLink软件的版本,我最开始用的J-LinkArmV4.28c,这个应该是很旧版了,这种旧版的软件,会导致连不上STM32,很奇怪,平时烧写是没问题的,然后只能装一个新版的J-

STM32的RTC管脚作为Tamper使用(RTC-TAMPER)

在学习STM32-RTC时,对入侵检测功能有很多不解;最大的困惑就是,这个东西有什么用?故作了以下笔记,欢迎指正:入侵检测描述:当TAMPER引脚上的信号从0变成1或者从1变成0(取决于备份控制寄存器BKP_CR的TPAL位),会产生一个侵入检测事件。侵入检测事件将所有数据备份寄存器内容清除。 根据上面的描述,个人进行了以下的应用场景猜想:猜想1:将程序关键变量X=Y保存到数据备份寄存器;开机后,读数据备份寄存器的值,如果X==Y则进入主功能;当竞争对手对产品进行拆解时,产生一个入侵检测事件,数据备份寄存器丢失(X!=Y),产品无法使用。不过直接应用产品风险过大;一般应用,入侵事件生成中断,停

STM32网络通信Web Server中SSI和CGI的应用

介绍最近由于项目功能需要,开始研究STM32WebServer通信以及SSI和CGI应用方法。项目结束后,主要总结浏览器与STM32之间进行通行,STM32作为服务器而浏览器做为客户端进行通行。文件介绍此部分的代码是根据ST官方的WebServer例程的基础上完成修改和实现,在webserver文件夹下:文件说明makefsdata文件夹中包含有原始网页文件和将原始的网页文件转化成网页数据的工具makefsdata.exefs.c这两个文件用来管理生成的网页数组fs.hfsdata.c生成的网页数组fsdata.hhttpd.cHttpServer的源代码,本实验的核心文件,这两个文件完成了将

STM32型号及其命名规则

目录一、stm32简介:stm32是st公司基于ARMCortex-M内核所设计的32位微控制器。二、stm32型号分类三、stm32命名规则四、其他简介一、stm32简介:stm32是st公司基于ARMCortex-M内核所设计的32位微控制器。二、stm32型号分类stm32主要分为4个系列:高性能MCU:STM32F2、STM32F4、STM32H7、STM32F7主流MCU:STM32G0、STM32F0、STM32F1、STM32G4、STM32F3超低功耗MCU:STM32L0、STM32L1、STM32L4+、STM32L4、STM32U5、STM32L5无线系列MCU:STM3

【STM32】SPI屏幕刷图总结:GPIO模拟,硬件SPI,DMA+硬件SPI

文章目录GPIO模拟SPI硬件SPI外设DMA+硬件SPI外设总结代码工程:https://github.com/liefyuan/stm32-spi-st7789-tft.git前言我的屏幕的分辨率是:240*320驱动是:ST7789V线驱动方式:四线SPI(CS,DC,SDA,SCL)以下分别使用了三种方式来实现刷图。头文件:#ifndef__ST7789_DRIVER_H__#define__ST7789_DRIVER_H__#include"stdint.h"#include"stm32f4xx.h"#include"system_stm32f4xx.h"#defineST7789_

STM32F407普通IO口模拟串口实现不定长数据收发

前言因为项目中用到的串口比较多,STM32F407VET6自带的串口不够用了,所以只能考虑用模拟串口来实现功能。普通的IO口来模拟串口需要先了解串口的时序图,需要用到两个IO引脚即收发引脚,两个定时器,一个用于发送延时使用,一个用于产生中断接收数据。代码的初始化主要用CubeMx自动生成,功能代码自己完成。下面一起来看看吧。目录前言一、普通IO模拟串口原理二、实际应用1.STM32CubeMx初始化2.数据发送和接收功能代码测试功能代码一、普通IO模拟串口原理单片机普通io模拟串口的关键在于弄清楚串口的时序图,也是普通IO需要严格的遵循串口协议规则,串口时序图如下图所示。 一个起始位是从高电平