![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
文章平均质量分 74
@残梦
当学习成为一种习惯!
展开
-
75、stm32定时器PWM输出指定脉冲数
要想生成固定脉冲数可以使用PWM中断计数判断,但是这个方案在频率高时就会不准,并且占用CPU;还有一个办法就是使用定时器A输出PWM,并且驱动定时器B计数,计数到达脉冲数时触发中断,并且关闭定时器;原创 2024-04-28 17:35:26 · 459 阅读 · 0 评论 -
60、UART任意时间缓冲打印信息--解决写代码调试时中断中打印信息问题
UART任意时间缓冲打印信息--解决写代码调试时中断中打印信息问题原创 2023-12-23 15:37:05 · 848 阅读 · 0 评论 -
29、分块式内存管理[malloc、free]
注:使用内存分配memory_malloc()\memory_realloc()后,不使用此资源后需使用memory_free()释放内存,避免内存泄露|不够。内存管理自身消耗内存=单个内存表4字节 * 内存块数 + sizeof(memory_manage_StructDef) + 地址对齐损失字节数。3、调用memory_init()初始化内存管理(可以修改单个内存块字节大小,dAlign_Byte的整数倍)内存块0 内存块1 内存块2 …内存表0 内存表1 内存表2 …*file:内存管理文件。原创 2023-10-24 10:41:39 · 223 阅读 · 0 评论 -
21.1 stm32使用LTDC驱动LCD--配置说明
stm32使用LTDC驱动LCD--配置说明原创 2023-10-17 18:00:56 · 2160 阅读 · 0 评论 -
20.2 FMC驱动SDRAM的时序初始化实现及内存测试
SDRAM时序初始化、内存测试原创 2023-10-14 14:52:38 · 416 阅读 · 0 评论 -
20.1CubeMx配置FMC控制SDRAM【W9825G6KH-6】
CubeMx配置FMC控制SDRAM【W9825G6KH-6】原创 2023-10-13 17:52:21 · 1506 阅读 · 1 评论 -
9.2CubeMx配置SD卡FATFS系统_stm32H7系列 SD卡 FR_NO_FILESYSTEM 找不到FatFs系统的问题
/挂载盘符A】会出现f_mount挂载SD卡返回没有文件系统FR_NO_FILESYSTEM,但是SD卡是有文件系统的,即使接着格式化SD卡你会出现问题(retSD = f_mkfs(SDPath,0,0,work,sizeof(work));这时,就需要手动打开两个宏定义ENABLE_SD_DMA_CACHE_MAINTENANCE 、ENABLE_SCRATCH_BUFFER。开启宏ENABLE_SD_DMA_CACHE_MAINTENANCE、ENABLE_SCRATCH_BUFFER。原创 2023-10-13 14:31:03 · 2595 阅读 · 2 评论 -
25、字符缩放显示任意大小(LCD|OLED)
字符缩放显示任意大小原创 2023-09-18 19:28:18 · 415 阅读 · 0 评论 -
24、DAPlink仿真器-STM32F103C8T6
DAPlink原创 2023-09-09 15:21:34 · 388 阅读 · 0 评论 -
22、touchGFX学习Model-View-Presenter设计模式
touchGFX学习Model-View-Presenter设计模式原创 2023-08-14 15:17:50 · 935 阅读 · 0 评论 -
21、stm32使用LTDC驱动LCD
stm32使用LTDC驱动LCD RGB888原创 2023-08-11 15:46:25 · 1301 阅读 · 0 评论 -
20、stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)
stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)原创 2023-08-10 20:08:22 · 1288 阅读 · 0 评论 -
15、STM32驱动sht35温湿度传感器
STM32H7 CubeMx SHT35温湿度传感器 模拟IIC驱动原创 2023-05-24 14:18:23 · 1012 阅读 · 0 评论 -
14、IIC主机控制--引脚软件模拟
软件模拟IIC驱动文件原创 2023-05-23 17:45:00 · 593 阅读 · 0 评论 -
13、MDK分散加载方式管理多块内存
MDK分散加载方式管理多块内存原创 2023-04-26 16:11:39 · 822 阅读 · 0 评论 -
12、CubeMx STM32H750VB FMC
CubeMx STM32H750VB FMC原创 2023-04-19 11:19:14 · 964 阅读 · 0 评论 -
11、STM32H7 MPU Cache
MPU内存保护,STM32H750使用FMC控制LCD数据异常 使用STM32H7的FMC注意MPU配置 透写和回写缓存原创 2023-04-19 09:52:51 · 1334 阅读 · 0 评论 -
10、STM32H750驱动W5500
本文会利用W5500实现服务器,并自动分配网络IP地址,使用SPI轮询方式和SPI+DMA方式,实现网络通信不会讲解W5500代码,只是快速搭建。原创 2023-03-16 13:44:49 · 1969 阅读 · 1 评论 -
9、STM32 SDIO FATFS(SD卡)
STM32 SDIO FATFS原创 2023-03-01 13:58:32 · 1567 阅读 · 3 评论 -
8、STM32 FSMC驱动LCD(ILI93xx)
STM32 FSMC驱动LCD(ILI93xx)原创 2023-02-24 15:12:32 · 2468 阅读 · 2 评论 -
7、STM32 FSMC驱动SRAM
STM32F4驱动FSMC读写SRAM IS62WV51216(1M字节)原创 2023-02-23 16:29:20 · 2502 阅读 · 0 评论 -
6、Fatfs系统移植
W25Qxx上挂载Fatfs系统 HAL库 CubeMx配置原创 2023-02-22 11:07:35 · 1359 阅读 · 0 评论 -
5、HAL库驱动W25Qxx
STM32 W25Qxx CubeMx HAL库 SPI原创 2023-02-17 16:31:38 · 966 阅读 · 0 评论 -
4、HAL库SPI数据收发
STM32 CubeMx SPI数据收发原创 2023-02-17 15:43:00 · 1100 阅读 · 0 评论 -
3、按键扫描检测处理
按键动作分长按、短按(弹起时执行)两种 按下不放执行长按,但松开按键时不予执行短按函数 多个按键可以同时操作 按键引脚会自动配置软件上下拉原创 2023-02-16 11:02:40 · 1526 阅读 · 1 评论 -
2、HAL库利用滴答定时器systick(1ms中断)实现时间计数戳
滴答定时器 中断计数 时间戳原创 2023-02-15 17:04:07 · 2131 阅读 · 0 评论 -
1、HAL库UART 中断|DMA 自动回显接收数据
STM32 UART中断 DAM中断接收数据CubeMx原创 2023-02-15 14:46:58 · 770 阅读 · 0 评论 -
xx、CubeMx FreeRTOS笔记
FreeRTOS 任务 队列 信号量 互斥量原创 2022-09-05 16:43:06 · 854 阅读 · 0 评论 -
CubeMx DMA笔记
定时器开DMA关于DMA初始代码:主函数启动:关于tim.c全部代码:关于DMA使用的外设地址一定需要满足DMA的传输限制:比如此图中的DMA1是不能访问AHB1外设的,也就是比如不能DMA1搬移GPIOC\GPIOB等外设的数据传输...原创 2022-06-27 14:24:42 · 454 阅读 · 0 评论 -
9.1 CubeMx Fatfs文件读写(SDIO)
STM32F411CEU6通过CubeMx工具配置SDIO总线、Fatfs访问SD卡,进行读写文件硬件连接:配置:1、基础配置2、主配置:代码部分#include "stdio.h"#include "string.h"#include "math.h"int fputc(int ch,FILE *f){ uint8_t temp[1] = {ch}; HAL_UART_Transmit(&huart2,temp,1,2); retur原创 2022-04-26 12:06:09 · 261 阅读 · 0 评论 -
FreeRTOS之打印CPU使用率
API函数:1、获取任务信息void vTaskList( char * pcWriteBuffer );2、获取任务运行时间信息void vTaskGetRunTimeStats( char *pcWriteBuffer );此功能需要开启一个高于操作系统分辨率10倍的定时器。FreeRTOSConfig.h/******************************************************************** FreeRTOS与运行原创 2022-03-22 17:43:38 · 1542 阅读 · 0 评论 -
FreeRTOS之内存管理笔记
方案:heap1.c 方案具有以下特点:1、 用于从不删除任务、队列、信号量、互斥量等的应用程序(实际上大多数使用FreeRTOS的应用程序都符合这个条件)。2、 函数的执行时间是确定的并且不会产生内存碎片。heap_1.c 管理方案使用两个静态变量对系统管理的内存进行跟踪内存分配。heap1.c 方案具有以下特点:1、 用于从不删除任务、队列、信号量、互斥量等的应用程序(实际上大多数使用FreeRTOS的应用程序都符合这个条件)。2、 函数的执行时间是确定的并且不会产生内存碎片。heap_1.原创 2022-03-22 11:08:17 · 1715 阅读 · 0 评论 -
FreeRTOS使用软件定时器
**通过创建软件定时器实现500ms中断,执行x次后停止并删除定时器。宏://RTOS系统节拍中断的频率。即一秒中断的次数,每次中断RTOS都会进行任务调度#define configTICK_RATE_HZ (( TickType_t )1000)//支持动态内存申请#define configSUPPORT_DYNAMIC_ALLOCATION 1 //启用软件定时器#define configUSE_TIMERS 1 mai原创 2022-03-21 18:01:30 · 1108 阅读 · 0 评论 -
普通信号量 PK 互斥信号量
重点:当串口发送数据同时有几个任务调用时,则出现打印数据混乱,此时就需要使用互斥信号量了,确保只有一个任务在调用串口发送。数据混乱原因:多个不同优先级任务运行时使用同一个信号量将因为阻塞导致任务执行出现优先级翻转问题;示例将演示任务优先级翻转问题:创建3个任务,优先级不同,创建二值信号量并释放信号量。任务1 优先级低:获取信号量,打印运行信息,任务调度,释放信号量,延时任务2 优先级中:打印运行信息、延时任务3 优先级高:获取信号量,打印运行信息,释放信号量,延时示例代码:二值信号量演示:原创 2022-03-21 15:13:21 · 157 阅读 · 0 评论 -
STM32硬件IIC 主从(一、CubeMx快速实现)
目的通过HAL库实现STM32F103C8T6两块板之间的IIC主从相互通信,串口打印接收数据。环境搭建/**I2C1 GPIO Configuration PB6 ------> I2C1_SCLPB7 ------> I2C1_SDA 注意通信线记得接上拉电阻4.7k。CubeMx配置配置sys 串行调试配置外部高速时钟配置串口,默认值配置IIC,默认值,从机地址0x01,左移1位=0x02开启IIC的事件中断与错误中断代码1原创 2021-06-02 20:10:43 · 10260 阅读 · 23 评论 -
STM32 CAN HAL库
目的通过stm32CubeMx配置CAN,实现回环测试cubemx配置时钟配置开启外部时钟打开sw调试配置串口,默认配置配置CANclk=APB1=36M;波特率=clk/Prescaler /(1 + Segment1 + Segment2);= 36M/4/(1+5+3)=1M;最高波特率1M传输优先级禁止时取决于报文Receive Fifo Locked Mode禁止时,FIFO满了不会覆盖原有数据中断配置代码编写:/* USER CODE BEGIN Heade原创 2021-05-31 23:10:06 · 1981 阅读 · 6 评论 -
stm32Cubemx USB虚拟串口
CubeMx配置时钟:选择USB_OTG_FS->Mode->Device_Only,其余默认即可USB_DEVICE->Class For FS IP选择虚拟串口,其余不变修改Heap Size 大小,小了会识别到USB造成驱动设备出现感叹号代码编写连接情况查询函数:hUsbDeviceFS定义在usb_device.c中void VCP_Status(void){ static uint8_t old_status = 0; if(hUsbD原创 2020-11-01 15:45:55 · 6811 阅读 · 3 评论 -
STM32CubeMx配置WKUP(PA0)按键低功耗唤醒
任务目标配置wakeup唤醒低功耗,上电灯亮5秒后关闭,进入低功耗模式;若未进入低功耗则会灯闪烁;当按下wakeup则唤醒MCU。CubeMx配置PA0配置wakeup唤醒配置LED指示灯别的无需配置。代码int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration-----------------------------------------------------原创 2020-08-03 23:07:53 · 8510 阅读 · 0 评论 -
cubeMx配置wwdg
配置wwdg配置:104是递减计数器刷新值96上限窗口值8分频值配置中断:超时计算公式:计数频率= psc∗4096/8000000 =244HZ(记一次数需要时间约4ms)超时时间=记一次数需要时间∗(counter−64)=4ms∗(104−64)≈160ms以此类算出上限前的时间为=记一次数需要时间∗(window value -64)=4ms*(96-64)=128...原创 2020-05-07 18:19:51 · 888 阅读 · 0 评论 -
针对CubeMX配置的IWDG初始化修改
由于cubemx配置的IWDG出现HAL_IWDG_Init函数反复复位,写此函数替代cubemx产生IWDG/**************************************************function:看门狗初始化函数*param:IWDG_HandleTypeDef见HAL工程*return:void*note:由于cubemx配置的IWDG出现HAL_IW...原创 2020-05-07 16:07:47 · 902 阅读 · 0 评论