STM

基于32位Cortex™-M4的STM32F446RET7、STM32F429IGH6、STM32F423VHH6嵌入式微控制器(MCU)

描述 STM32F4 32位Cortex™-M4 微控制器(MCU)打开了进入数字信号控制器(DSC)市场的大门。这一系列器件与 STM32F2 系列引脚对引脚、软件相容,但是具有更好的性能、DSP 性能、更多的 SRAM,并改进了外设,如全双工 I²S、低于 1μA 的 RTC、2.4MSPS 的 ......
32F STM 控制器 32 Cortex

STM32基于HAL库流水灯实验

一、搭建STM32的开发环境(一)安装jdk由于STM32CubeMX是Java实现的,需要安装jdk环境。jdk官网下载链接:https://www.oracle.com/java/technologies/javase-downloads.html (二)安装STM32CubeMX1.下载地址: ......
流水 STM HAL 32

stm32cubeide+bootloader跳转的方法和坑点

网上介绍方法很多,跳转原理可以看这一篇 基于STM32的简易Bootloader实现 - JiuLiBlog - 博客园 (cnblogs.com) 大概步骤为:先判断栈顶地址是否合法,再关闭总中断和systick中断,再设置跳转地址、再加载栈顶地址,然后就可以跳转了,跳转后的应用程序需要先设置栈顶 ......
bootloader cubeide 方法 stm 32

STM32驱动 有刷电机 位置,速度,电流,三环控制

PID算法: 位置式PID: 离散化位置式PID: 增量式PID: 增量式和位置式PID程序: int32_t Increment_PID_Control(PID_TypeDef *PID,float Feedback_value) { PID->Error = (float)(PID->SetPo ......
电流 电机 速度 位置 STM

STM32在上面运行Java虚拟机确实惊人

STM32在上面运行Java虚拟机确实惊人,但实现了这一点的是特殊优化的Java虚拟机版本,如MicroEJ或JamaicaVM等,它们都是专门为嵌入式系统设计的。 这种Java虚拟机的大小能够做到如此之小(上到几十KB)主要是因为以下全面策略: 功能适配:不同于标准的Java虚拟机,这些虚拟机只包 ......
Java STM 32

STM32DMA FIFO理解

1.节拍的意思是MSIZE大小的 原目标数据一次传输到FIFO的大小,突发的意思是传到目标地址的过程 ......
FIFO STM DMA 32

STM32F103C8T6移植FreeRTOS过程记录

一、创建基于官方库的裸机工程(这教程很多,每个人创建的工程风格也不一样,就不多赘述了) 二、下载FreeRTOS开源代码(FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Int ......
FreeRTOS 过程 103C F103 STM

关于STM32F407ZGT6的USB损坏后使用ST-Link和USART1实现串口功能

开发板:STM32F407ZGT6; 目标:想使用软件“串口调试助手” 情况:开发板上的USB_UART口所在器件损坏或者直接没有; 解决办法:查看该开发板的原理图,可得:串口1的RX接TXD,串口1的TX接RXD,那么按如下步骤操作:1、现在使用USB转TTL模块,将串口1的RX接USB转TTL模 ......
串口 ST-Link 功能 USART1 USART

文件stm32f4xx.h 解析

本文简短不看版:这个是头文件的头文件 这个文件是个头文件,它又包含了两个头文件(通过在 Keil 魔法棒工具定义两个宏 STM32F407xx 和 USE_HAL_DRIVER 开关) #include "stm32f407.h" //某一特定F4型号芯片寄存器定义 #include "stm32f ......
文件 f4xx stm 4xx 32

stm32单片机在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)

stm32f1系列单片机,在keil5环境下编译后显示四个储存区域,分别是 Code, RO-data,RW-data,ZI-data Code为程序代码部分RO-data 表示 程序定义的常量constRW-data 表示 已初始化的全局变量ZI-data 表示 未初始化的全局变量 储存区域如下: ......
单片机 变量 环境 32 Keil

stm32_1_开发环境配置

20年参加ROBOMASTER,学习到stm32。21年大学毕业,参加土木类工作,把之前学到的全都丢弃了。最后还是靠stm32找到了工作。感谢这门技术,把这几年学到的东西做个总结。初学者还是建议看正点原子,野火视频教材。 正点原子:http://47.111.11.73/docs/index.htm ......
环境 stm 32

STM32采集风速仪+ESP8266显示OLED+阿里云上报

ESP代码 #include <ESP8266WiFi.h> static WiFiClient espClient; #include <ArduinoJson.h> #include <AliyunIoTSDK.h> AliyunIoTSDK iot; #define PRODUCT_KEY " ......
风速仪 风速 8266 OLED STM

2. STM32 HAL库结构的初步分析

1. 以串口为例,添加串口的HAL库源码 我们使用的是异步通信的方式,因此将stm32f1xx_hal_uart.c添加进来。在本次学习中,串口我们使用3种方式去学习,轮询、中断、DMA方式。因此,我们也将DMA的HAL库源码添加进来。 ......
结构 STM HAL 32

ardunio-stm32采集风速传感器

波特率都是4800 设备地址 默认01 广播FF #define mySerial Serial2 byte Msg_getdata[8]={0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B}; char RecData[9]={0}; // 校验 uint16_t m ......
风速 传感器 ardunio-stm ardunio stm

STM32 EEPROM_Emulation 保存数据使用注意事项

1 目的: stm32 官方提供flash模拟eeprom的代码例子,为了能给产品添加数据保存功能,可以改造该例子迅速完成数据保存的功能。示例代码路径: C:\Users\rd-yhzhang\STM32Cube\Repository\STM32Cube_FW_F1_V1.8.5\Projects\ ......

STM32单片机实现Bootloader跳转的关键步骤(转载)

STM32单片机实现Bootloader跳转的关键步骤 - 知乎 (zhihu.com) STM32单片机实现Bootloader跳转的关键步骤 (qq.com) 现在越来越多的嵌入式设备支持远程自动升级,不需要再借助下载器。这样对于设备的维护非常方便。 当然若使设备支持远程升级,需要编写支持升级的 ......
单片机 Bootloader 步骤 关键 STM

怎样查找STM32的硬件错误HardFault_Handler

1.在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处。 2.在Keil菜单栏点击“View”->“Call Stack Window”弹出“Call Stack + Locals”对话框。然后在对话框中右键选择“Show Caller Code”,就 ......

STM32 + ESP32(AT固件 MQTT协议) + MQTTX(桌面终端) + (EMQX消息服务器)

翻出老物件,搭建一个简单的 IOT 开发环境,也算是废物利用了 ,接下来加传感器。1. STM32 采集数据: RTOS。 资源相对比较丰富,可以根据项目需求定制。2. ESP32 网络传输(AT固件 MQTT协议) : AT:封装好的接口,扩展性不是那么好,业务简单的话将就可以用。 SDK:接口比 ......
固件 终端 桌面 消息 服务器

VSCode 调试 STM32 无法识别一些标识符

1 无法识别 uint32_t 在 c_cpp_properties.json 的 defines 下添加 __CC_ARM 和 __IO : 2 无法识别 GPIO 等 STM32 定义 defines 其实就是 MDK 工程里的 ......
标识符 标识 VSCode STM 32

STM32——GPIO输出

一、结构 二、8种模式 三、对推挽输出、开漏输出的理解 1、推挽输出: 推:将电流推出去 挽:将电流挽回来 上图的前两种情况组合,就是推挽输出模式。 情况1时即“推”,情况2时即“挽”。 2、开漏输出: 漏:漏极啥也没接。情况2与3组合构成开漏模式。(常配一个外接上拉电阻) 功能1:改变高电平的电压 ......
GPIO STM 32

关于STM32 HAL库版本IAP升级跳转一直进入HAL_Delay()函数;只需要在升级 程序中加入如下代码;主要动作就是关闭中断

__set_FAULTMASK(1); /* set vector table/ SCB->VTOR = FLASH_BASE | 0x1F800; // / USER CODE END 1 */ /* MCU Configuration / / Reset of all peripherals, ......
函数 HAL HAL_Delay 动作 版本

STM32库函数点灯

第一步:时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); 第二步:端口配置(GPIO) GPIO_InitTypeDef GPIO_InitStruct; //定义一个结构体,其成员用于GPIOC的信息配置 GPIO_InitStru ......
函数 STM 32

FPGA, arduino, STM32, RaspBerry 树莓派 简介

https://www.cnblogs.com/zhenghb31/p/15046496.html 市面上控制器这么多,似乎每一个都很厉害…为什么有的控制器编写起来那么难,功能很少,有的简单易学,功能强大呢?各种控制器又有什么区别呢?经过我的思考,我个人把控制器分为三类! 第一类: 基于逻辑电路的控 ......
树莓 RaspBerry arduino 简介 FPGA

Clion+STM32配置环境

Clion+STM32配置环境 下载安装 下载Clion,具体步骤省略 https://www.jetbrains.com/clion/download/ Clion官方的教程网址如下 https://www.jetbrains.com/help/clion/embedded-development ......
环境 Clion STM 32

STM32F103 HAL库功能模块

以下模块仅做学习参考使用,实际使用需要根据HAL库具体模块功能配置,功能以参考手册为准; GPIO 中断 串口 看门狗 定时器 ......
功能模块 模块 功能 F103 STM

STM32之CAN通信

CAN(Controller Area Network),是ISO国际标准化的串行通信协议,CAN总线协议已广泛应用在汽车电子、工业自动化、船舶、医疗设备、工业设备等方面 ......
STM CAN 32

STM32 RTC模块的使用

1 STM32 实时时钟RTC原理: A 外部晶振采用32.768KHz的原因,因为2的15次方2^15=32768, 所以32.768KHz分频15次后刚好是1Hz,1S就是1Hz。 B RTC模块有一个实时计数器Real Time Counter,它对震荡源脉冲计数,每个脉冲计数器加1,所以不能 ......
模块 STM RTC 32

STM32 硬件CRC的使用

1 代码: crc_lib.h /* Define to prevent recursive inclusion */ #ifndef __crc_lib_H #define __crc_lib_H #ifdef __cplusplus extern "C" { #endif /* Includes ......
硬件 STM CRC 32

使用FMC连接SDRAM扩展STM32内存

1.引脚初始化 BSP_SDRAM_GPIO_Init void BSP_SDRAM_GPIO_Init(void) { RCC_AHB1PeriphClockCmd(FMC_A0_GPIO_CLK, ENABLE); RCC_AHB1PeriphClockCmd(FMC_A1_GPIO_CLK, ......
内存 SDRAM FMC STM 32

STM32---I2C通讯

STM32的I2C通讯可以使用两种方式实现,分别是软件I2C,和硬件I2C。软件I2C主要是通过代码手动翻转电平来模拟时序;硬件I2C主要使用通过STM32自带的硬件外设实现。以下,我着重讲述一下硬件I2C的部分。 想要使用硬件I2C,主要分为以下四个步骤: 第一步,开启GPIO和I2C的时钟 跟G ......
通讯 STM I2C 32 2C