- 博客(23)
- 收藏
- 关注
原创 使用STM32H743的CMAKE工程添加到vscode
摘要:本文介绍如何在VSCode中搭建STM32H743的CMake开发环境。主要步骤包括:配置HSE时钟和GPIO、设置FreeRTOS系统时钟源(1ms)、基于25MHz外部晶振配置时钟树、生成CMake工程文件、配置VSCode的CMake环境并实现一键编译下载。完成后只需添加文件即可直接编译整个工程。该流程适用于STM32H743芯片的嵌入式开发环境搭建。
2025-12-16 23:10:03
92
原创 STM32CubeMX+VSCode搭建STM32F407 CMake工程
本文记录了使用STM32CubeMX创建基于STM32F407的CMake工程并通过VSCode编译的过程。首先配置168MHz系统时钟(外部晶振16MHz),依次设置定时器(TIM2为1ms)、串口和FreeRTOS(CMSIS-V2版本),创建两个可自定义的线程。选择CMake工具链生成代码后,在VSCode中通过STM32Cube插件打开工程进行编译。最后提到可使用Git进行版本控制,为后续开发做好准备。该流程展示了从硬件配置到软件开发环境的完整搭建过程。
2025-12-10 17:57:23
121
原创 VSCODE开发的bug问题记录
摘要:在配置VSCode环境时,由于STM32H743编译器环境未正确设置,导致GD32H757项目编译异常,引发难以排查的隐蔽bug。经验教训:使用EIDE工具时,对STM32和GD32的编译器配置需格外谨慎,避免交叉干扰。
2025-12-08 17:36:45
114
原创 FSMC基础知识梳理
STM32的FSMC(Flexible Static Memory Controller)是扩展外部存储器的关键外设,支持连接SRAM、NOR Flash等多种存储设备和并口LCD。它通过地址映射简化访问,提供可配置时序、多存储块支持和灵活数据宽度(8/16/32位)。FSMC包含4个256MB存储块,通过片选信号控制,并可通过时序参数(建立/保持时间)优化通信。特别在LCD驱动中,可将寄存器选择信号映射到地址线实现命令/数据区分。STM32H7增强为FMC,支持更高性能和复杂时序配置。使用时需注意GPIO
2025-11-20 17:51:02
958
原创 关于GD32H757单片机,DMA的自检功能开发记录
本文介绍了GD32H7单片机DMA自检功能的开发过程。通过静态标志数组管理16个DMA通道的初始化和自检状态,实现了DMA配置后的自动检查功能。自检主要验证时钟、空闲中断、通道和串口句柄等关键配置,通过直接查询寄存器标志位来判断配置状态。开发中采用结构体封装串口数据,并设计了初始化标志和自检标志双重验证机制,确保DMA正常工作。自检失败时系统会复位,保证系统可靠性。该方法充分利用库函数,简化了开发流程。
2025-10-12 14:56:39
196
原创 关于GD32串口波特率的计算。
这是设置波特率的库函数,根据串口号,获取串口所在总线的时钟。这种寄存器的位,转换,还是非常细腻的。整数+小数的转换,这种思想, 由手册,转换成代码的这种要多多分析。波特率的计算是要根据总线,还有BAUD寄存器,两者计算而来,下面给出配置好波特率之后,自检的代码。其中,8倍采样,和16倍采样的计算细节也不一样,要根据手册,得到不同的计算。小数部分则是要区分采样率是多少,8位采样和16位采样,计算公式是不同的。整数位是高位,如果反算波特率的话,要右移动4位,得到整数部分;关于GD32串口波特率的计算。
2025-09-24 22:43:07
168
原创 vscode的git操作中,因为git操作有问题,导致分支合并不上的处理方式, cheryout,使用变基操作来处理
本文简要介绍了使用r分支上传到仓库的操作流程。主要说明两种方法:一是通过反复执行操作后直接用r分支上传;二是更简便地直接使用r命令完成上传。这两种方式都能实现将内容提交到代码仓库的目的,操作步骤简单直接。
2025-09-18 18:01:51
136
原创 关于串口接收导致的发送时序异常记录
摘要:本文分析了串口DMA数据传输卡顿问题,通过优化DMA初始化逻辑(使用二维数组标志位避免重复初始化)和调整日志处理机制(关闭中断改用线程轮询+1ms延时)解决了数据发送延迟问题。最终实现40ms稳定发送,同时总结了RS422差分信号接法和调试经验,强调逻辑分析仪在问题定位中的重要性。
2025-07-19 18:53:05
266
原创 配置时钟源超标导致不能烧录的解决办法。
摘要:配置400MHz时钟源时,因比例计算错误导致下载口卡死。通过将BOOT拉高烧录程序后切回低电平,并用GDLink擦除解决问题。需注意下载配置时选择"不运行"模式。此问题记录供后续参考。
2025-07-17 18:47:47
138
原创 关于迪文屏开发,“触摸屏按压状态返回”的处理办法
一次触摸操作一共包含3个状态:按下,持续按压,抬起。这三个阶段结合起来就完成了一次完整的触摸操作。
2023-04-16 22:38:32
1957
原创 2022.9.28号,C语言学习小记
这是递归写法,分析代码挨着一段一段的分析,就知道递归是什么意思了。计算0-100里面含有多少个9的数字,求余数,求商即可。如果不允许创建变量呢?怎么操作,如下:用递归的办法求解。计算字符串长度,有指针变量的操作,细细品味。得到小数的办法,double、和%lf.题目4 有点技巧性。
2022-09-28 20:05:25
252
原创 指针使用的一些理解,嵌套调用的理解。
printf 43 是返回两个数, printf 2是返回1, 所以最后结果是4321.是把arr2里面的数据转换到arr1里面去。接受一个整型值(无符号),按照顺序打印它的每一位,例如:输入1234,输出1234.在Add函数里面定义*p之后,*p所指的也就是&num,神奇神奇。为什么会是4321,因为 printf 函数返回的是个数值,一个函数的返回值是另一个函数的起始值;函数内部改变函数外部,得传指针。打印结果是:1 2 3 4.头文件也是新的,也要记住。新的函数出现,要记住!
2022-09-22 08:28:59
200
原创 【无标题】
1,GO TO语句突然跳到某个位置,想当于死循环。适用于多层嵌套;2,关机小程序记住头文件,可用MSDN软件查找头文件,这个得注意,还有系统输入函数,比较字符串函数也得记得。
2022-09-14 20:22:03
148
原创 一些题目的解法
当然 if((y%4==0)&&(y%100!=0))||(y%400==0))这个判断也行,而且更加简洁。不能被100整除的才对,思路要清晰才能搞好代码,打印结果如下。//写一个代码打印1-100之间所有3的倍数的数字。这里的是辗转相除法的精髓,得好好理解。最小公倍数 = m*n/最大公约数;3、计算两个数的最大公约数。这个辗转相除法要注意。
2022-09-13 20:46:46
147
原创 static 修饰的局部变量、全局变量
为什么会是10个2,因为每次执行main 里面的程序后,“a”是局部变量,都会刷新为1,所以搞10次,每次都是a+1;static 修饰的全局变量,只能在自己所在的源文件(.c)内部可以使用,其他源文件不可以使用。static 修饰函数,使得函数只能在自己所在得源文件内部使用,不能在其他源文件内部。但是被static修饰之后,变成了内部链接属性,其他源文件不能链接到这个静态全局变量。static 修饰局部变量,改变了局部变量的生命周期,改变了变量的存储类型。堆区:动态内存分配!
2022-09-02 21:09:14
608
原创 C语言(算术、左移、赋值、位、sizeof计算大小、取反~、强制转换、条件)操作符..
记录一下(算术、左移、赋值、位、sizeof计算大小、取反~、强制转换、条件)操作符的使用方法
2022-09-01 11:26:22
695
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2