自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 75、stm32定时器PWM输出指定脉冲数

要想生成固定脉冲数可以使用PWM中断计数判断,但是这个方案在频率高时就会不准,并且占用CPU;还有一个办法就是使用定时器A输出PWM,并且驱动定时器B计数,计数到达脉冲数时触发中断,并且关闭定时器;

2024-04-28 17:35:26 254

原创 69、FIFO缓存发送数据(先入先出)

本文件用于设备数据收发缓冲使用,本fifo采用申请2片内存区,交替使用,写0时1读,写1时0读,避免同时使用相同内存块。此方法的弊端为,当FIFO输入数据速度大于输出,则会引起数据丢失,若只是短时间数据量大则可以通过分配较大空间避免此问题。链接:https://pan.baidu.com/s/1-u8w19RiyPeCtVQjX8hzgw。fifo区域采用头尾相连的方式循环覆盖,分别记录读和写的位置,相等则数据为空,否则说明有数据。

2024-03-22 16:01:45 576

原创 67、自定义通信帧协议解析

帧标识A 类型 备注A0x0F 长帧 数据长度2字节短帧:帧标识 帧标识取反 帧用户数据字节数 用户数据…用户数据长帧:帧标识 帧标识取反 帧用户数据字节数(高8位) 帧用户数据字节数(低8位) 用户数据…用户数据注意:帧标识符应尽量避免使用0x00/0xFF,因为出现概率过高,容易误识别。

2024-03-20 11:57:32 182

原创 60、UART任意时间缓冲打印信息--解决写代码调试时中断中打印信息问题

UART任意时间缓冲打印信息--解决写代码调试时中断中打印信息问题

2023-12-23 15:37:05 842

原创 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 211

原创 21.1 stm32使用LTDC驱动LCD--配置说明

stm32使用LTDC驱动LCD--配置说明

2023-10-17 18:00:56 1916

原创 20.2 FMC驱动SDRAM的时序初始化实现及内存测试

SDRAM时序初始化、内存测试

2023-10-14 14:52:38 353

原创 20.1CubeMx配置FMC控制SDRAM【W9825G6KH-6】

CubeMx配置FMC控制SDRAM【W9825G6KH-6】

2023-10-13 17:52:21 1208

原创 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 1989 2

原创 25、字符缩放显示任意大小(LCD|OLED)

字符缩放显示任意大小

2023-09-18 19:28:18 356

原创 24、DAPlink仿真器-STM32F103C8T6

DAPlink

2023-09-09 15:21:34 354

原创 22、touchGFX学习Model-View-Presenter设计模式

touchGFX学习Model-View-Presenter设计模式

2023-08-14 15:17:50 910

原创 21、stm32使用LTDC驱动LCD

stm32使用LTDC驱动LCD RGB888

2023-08-11 15:46:25 1212

原创 20、stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)

stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)

2023-08-10 20:08:22 1197

原创 1、QT新建工程

本章建立一个简单的QT工程,并且对工程目录进行重新管理,再进行windows端打包部署,方便开发

2023-07-12 16:37:55 829

原创 15、STM32驱动sht35温湿度传感器

STM32H7 CubeMx SHT35温湿度传感器 模拟IIC驱动

2023-05-24 14:18:23 937

原创 14、IIC主机控制--引脚软件模拟

软件模拟IIC驱动文件

2023-05-23 17:45:00 584

原创 1、c语言快速排序--支持int、float类型

c语言快速排序--支持int、float类型

2023-05-17 10:57:53 123

原创 13、MDK分散加载方式管理多块内存

MDK分散加载方式管理多块内存

2023-04-26 16:11:39 786

原创 12、CubeMx STM32H750VB FMC

CubeMx STM32H750VB FMC

2023-04-19 11:19:14 873

原创 11、STM32H7 MPU Cache

MPU内存保护,STM32H750使用FMC控制LCD数据异常 使用STM32H7的FMC注意MPU配置 透写和回写缓存

2023-04-19 09:52:51 1259

原创 10、STM32H750驱动W5500

本文会利用W5500实现服务器,并自动分配网络IP地址,使用SPI轮询方式和SPI+DMA方式,实现网络通信不会讲解W5500代码,只是快速搭建。

2023-03-16 13:44:49 1844

原创 9、STM32 SDIO FATFS(SD卡)

STM32 SDIO FATFS

2023-03-01 13:58:32 1473 3

原创 8、STM32 FSMC驱动LCD(ILI93xx)

STM32 FSMC驱动LCD(ILI93xx)

2023-02-24 15:12:32 2354 2

原创 7、STM32 FSMC驱动SRAM

STM32F4驱动FSMC读写SRAM IS62WV51216(1M字节)

2023-02-23 16:29:20 2397

原创 6、Fatfs系统移植

W25Qxx上挂载Fatfs系统 HAL库 CubeMx配置

2023-02-22 11:07:35 1313

原创 5、HAL库驱动W25Qxx

STM32 W25Qxx CubeMx HAL库 SPI

2023-02-17 16:31:38 930

原创 4、HAL库SPI数据收发

STM32 CubeMx SPI数据收发

2023-02-17 15:43:00 1069

原创 3、按键扫描检测处理

按键动作分长按、短按(弹起时执行)两种 按下不放执行长按,但松开按键时不予执行短按函数 多个按键可以同时操作 按键引脚会自动配置软件上下拉

2023-02-16 11:02:40 1442 1

原创 2、HAL库利用滴答定时器systick(1ms中断)实现时间计数戳

滴答定时器 中断计数 时间戳

2023-02-15 17:04:07 2044

原创 1、HAL库UART 中断|DMA 自动回显接收数据

STM32 UART中断 DAM中断接收数据CubeMx

2023-02-15 14:46:58 722

原创 xx、CubeMx FreeRTOS笔记

FreeRTOS 任务 队列 信号量 互斥量

2022-09-05 16:43:06 844

原创 CubeMx DMA笔记

定时器开DMA关于DMA初始代码:主函数启动:关于tim.c全部代码:关于DMA使用的外设地址一定需要满足DMA的传输限制:比如此图中的DMA1是不能访问AHB1外设的,也就是比如不能DMA1搬移GPIOC\GPIOB等外设的数据传输...

2022-06-27 14:24:42 434

原创 opencv图像通道分离与合并

源码:void QuickDemo::channels_demo(Mat &image){ std::vector<Mat> mv; split(image, mv);//通道分离 imshow("蓝色",mv[0]); imshow("绿色", mv[1]); imshow("红色", mv[2]); Mat dst; mv[0] = 0; merge(mv, dst); imshow("混合",dst);//图像合并 int from_to[] = {0,

2022-05-24 09:31:42 1231

原创 opencv图像像素算术运算+逻辑运算

void QuickDemo::OperatorTest(Mat &image){ Mat res; Mat m1 = Mat::zeros(image.size(), image.type()); m1 = Scalar(50, 50, 50); add(image, m1, res);//加法 imshow("add",res); subtract(image,m1,res);//减法 imshow("subtract",res); m1 = Scalar(2,2,2);

2022-05-23 20:05:25 379

原创 opencv滤镜效果使用applyColorMap函数

源码:void QuickDemo::color_style_demo(Mat &image){ Mat dst = Mat::zeros(image.size(), image.type()); int i = 0; for (i = 0; i < 19; i++) { applyColorMap(image, dst, i); imshow("colorstyle",dst); waitKey(500); }}函数applyColorMap()函数原型:

2022-05-23 19:02:24 489

原创 opencv使用Track Bar调节控件

说明:使用Track Bar调节图片亮度1、创建Track Bar函数函数原型:CV_EXPORTS int createTrackbar(const String& trackbarname, const String& winname,int* value, int count,TrackbarCallback onChange = 0,void* userdata = 0);@功能:创建跟踪条并将其附加到指定的窗口函数createTrackbar用指定的名称创建一个tr

2022-05-23 16:26:16 308

原创 openCV Mat类及遍历像素点

源码:void QuickDemo::CreateTest(Mat &image){ Mat m1,m2,cvt; m1 = image;//image.clone();//克隆图像 image.copyTo(m2);//复制image图像给m2 Mat m3 = Mat::zeros(Size(8, 8), CV_8UC3);//创建一个大小为8*8的图像,3个通道,并且全部赋值0;全部赋值1用ones m3 = Scalar(0,0,255);//对每个像素点按0,0,255赋

2022-05-21 15:44:27 1073

原创 opencv图像转换与保存

源码:quickopencv.h文件#include <opencv2\opencv.hpp>using namespace cv;class QuickDemo{public: void colorSpace_Demo(Mat &image);};quickdemo.cpp文件#include <quickopencv.h>void QuickDemo::colorSpace_Demo(Mat &image){ Mat gray,

2022-05-21 15:17:21 888

原创 opencv图像加载与显示

核心代码:#include <opencv2\opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(int argc, char ** argv){ Mat src = imread("F:/OpenCV/material/lena.jpg",IMREAD_ANYCOLOR); if (src.empty()) { printf("图像加载失败!"); retur

2022-05-18 20:39:06 591

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除