- 博客(84)
- 问答 (1)
- 收藏
- 关注
原创 ESP32S3移植LVGL
本文介绍了基于ESP32的2.0寸显示屏(ST7789)和电容触摸屏(FT6X36)的LVGL图形界面开发流程。主要内容包括:液晶屏初始化设置(320x240分辨率、显示参数配置),触摸屏初始化(使用FT5x06驱动替代),LVGL框架集成(显示和触摸设备接入),以及5个可选演示程序(基准测试、音乐播放器等)的运行方法。开发过程中需注意屏幕旋转、镜像等参数设置,并合理配置缓冲区大小避免内存不足。通过I2C总线连接硬件,最终实现完整的图形交互界面功能。
2025-07-09 17:52:19
359
原创 安装VSCode的时候没勾选将“通过Code打开”操作添加到Windows资源管理器目录上下文菜单(右键VSCODE打开)
【代码】安装VSCode的时候没勾选将“通过Code打开”操作添加到Windows资源管理器目录上下文菜单(右键VSCODE打开)
2025-06-17 17:41:28
435
原创 生吃FREERTOS(Q&A)
gpio_task_example:任务的入口函数,即 gpio_task_example 函数。“gpio_task_example”:任务的名字,方便调试识别。2048:为任务分配的栈空间大小,即 2048 个栈结构。NULL:不向任务入口函数传递参数。10:任务的优先级为 10。NULL:不获取任务句柄。
2025-06-17 17:22:17
729
原创 STM32启动文件学习(startup_stm32f40xx.s)
该文件是STM32F40xxx/41xxx系列微控制器的启动代码(MDK-ARM工具链),主要功能包括:设置初始堆栈指针(SP)和程序计数器(PC)指向复位处理程序定义中断向量表,包含所有异常和中断的处理程序入口地址配置堆栈(1KB)和堆(512B)的大小初始化系统时钟和外设最终跳转到C库的__main函数并调用main()
2025-06-05 01:09:01
586
原创 高级定时器PWM输入捕获
输入捕获可以检测PWM的占空比,周期,本次实验将用stm32f407做一个高级定时器PWM输入捕获,并且用2个按键控制pwm的占空比大小,以便查看捕获的有效性。
2025-01-16 00:18:29
348
原创 恒压公式推导
的变化,所以在应用过程中电池电压的变化会造成占空比的变量,电压的下降会造成占空比的上升进行对公式的补偿平衡。是固定的,在恒压的应用过程中,变量就只有。
2024-09-06 00:03:16
910
原创 STM32F407ZGT6驱动TFT屏ILI9341(硬件SPI)
ili9341,2.8inch,带触摸,开发板是野火stm32f407霸天虎。
2024-07-02 00:32:06
1659
3
原创 HC05蓝牙模块
HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm,接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。模块有6个IO口,别分是VCC(3.3-6V),GND,TX,RX,AT,State。与单片机连接用uart通讯,全双工。工作方式有2种:AT指令模式,透传模式。
2024-02-16 18:16:24
3399
原创 C语言strstr函数
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。
2024-02-16 17:32:03
450
原创 CAN通讯协议学习
它是一种异步通讯,can_high和can_low两条线利用的是电位差传输信号,抗干扰能力强,但是必须要有can控制器如TJA1050(我的开发板)当 CAN 节点需要发送数据时,控制器把要发送的二进制编码通过 CAN_Tx 线发送到收发器,然后由收发器把这个普通的逻辑电平信号转化成差分信号,通过差分线 CAN_High 和 CAN_Low 线输出到 CAN 总线网络。
2024-02-14 01:52:37
1174
原创 FreeRTOS创建静态任务教程及所遇到的问题解决方法
相对于动态任务,静态任务不需要动态分配内存,而是手动指定一个静态内存缓冲区,并在任务生命周期中一直使用该缓冲区。这可以避免动态内存分配时可能出现的内存碎片和内存泄漏问题,提高了系统的稳定性。
2023-05-23 21:13:52
1943
原创 FreeRTOS中的变量、指针前缀含义,`TickType_t`和`BaseType_t`
在FreeRTOS中,还有几个常用的指针前缀,包括:- `pv`:表示一个指向 void 类型的指针,通常表示一块未知类型的内存区域。- `px`:表示一个指向某个类型的指针,通常表示一个对象或结构体的指针。- `pc`:表示一个指向 char 类型的指针,通常表示一个字符串或字符数组的指针。- `pus`:表示一个指向 unsigned short 类型的指针。
2023-05-23 19:09:07
1867
1
原创 stm32读写内部Flash
stm32内部flash地址架构映射stm32内部flash地址架构映射因为我的stm32f407的内部flash是1M的所以块2不存在,但他的地址仍然存在,只是没有作用,这是stm32的整体框架。主存储器一般我们说 STM32 内部 FLASH 的时候,都是指这个主存储器区域,它是存储用户应用程序的空间,芯片型号说明中的 1M FLASH、2M FLASH 都是指这个区域的大小。
2023-04-24 12:25:56
1859
原创 Ubuntu Linux操作
Linux文件系统中,结构上以根文件系统最为重要。根文件系统是指开机时将 rootpartition 挂载在根目录(/),若无法挂载根目录,开机时就无法进入 Linux 系统中。根目录下有/etc,/dev,/boot、/home、/lib ,/lost+found,/mnt,/opt,/proc,/root,/bin,/sbin,/tmp,/var,usr 等重要目录。vi 编辑器的三种工作模式之间的转换如下。
2023-04-20 02:14:02
990
2
原创 MDK中一个.c如何把变量分别存储在内部和外部SRAM
而系统默认机制,都会把全局变量默认往大的SRAM空间中存储,此时可以看到外部SRAM的空间是比内部SRAM大的,所以全局变量都会默认往外部SRAM中存。1、首先取消勾选系统自动配置的内存空间,sct分配文件就可以编辑了。在系统汇编文件.s中,初始化系统后调用初始化外部SRAM函数。其中 *.o(STACK)是代表栈空间都存储在内部SRAM中。2、记住要利用外部SRAM存变量的时候就必须在系统初始化。此时我们在一个.c文件中定义一个局部变量和一个全局变量。一个地址是0x6c的外部SRAM地址。
2023-04-19 15:27:12
605
原创 MDK编译过程及文件类型
c和.s文件通过armcc编译器转为.o其中的code、RO、RW、ZI-data程序运行时rom中的rw-data复制到SRAM中,SRAM中一般存储可读写的变量,所以ZI-data和RW-data的数据存储在这。
2023-04-18 01:29:29
468
原创 STM32看门狗(独立看门狗与窗口看门狗)
STM32 有两个看门狗,一个是独立看门狗(IWDG)另外一个是窗口看门狗(WWDG),独立看门狗号称宠物狗,窗口看门狗号称警犬。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。独立定时器比较简单就不讲了,直接递减触发复位。
2023-03-22 20:55:35
1399
原创 应广单片机 PMS150G,PWM例程
前言基于PMS150G操控PWM调节占空比做到呼吸灯,调节灯光亮度的作用直接看代码吧,都有注释代码1呼吸灯#include "extern.h"void TM2_Init(void);void LED_light(void);void FPPA0 (void){ .ADJUST_IC SYSCLK=IHRC/16 // SYSCLK=IHRC/4 clkmd.En_WatchDog = 0; // WatchDog Enable 看门狗 // Ins
2022-05-27 17:51:25
4124
原创 STM32外部中断(EXTI)流程
介绍本次实验是基于STM32F407使能按键触发中断操作RGB灯EXTI框图本次实验是触发中断所以走的是产生中断而不是产生事件红色是产生中断 绿色的产生事件运行流程根据EXTI框图可以看出分为4个流程第一步:初始化需要连接到EXTI线的GPIO /* 第一步:初始化需要连接到EXTI线的GPIO */ /*开启按键GPIO口的时钟*/ RCC_AHB1PeriphClockCmd(KEY1_INT_GPIO_CLK|KEY2_INT_GPIO_CLK
2022-05-20 17:50:50
3678
原创 C语言 关于枚举跟结构体联动
前言在单片机写库的过程中,写库的工程师为增加代码的可读性,会利用大量枚举和结构体来规范代码,并加上适当的注释,看起来就比较通俗易懂,层层渐进。刚开始写的时候会比较迷惑,把代码思路摸清楚就很容易了。例程typedef enum{ //枚举 a=1, //枚举中的 a代表的就是1 b=2, c=3, d=4}EnumType;typedef struct{ //结构体 EnumType q; //结构体成员是利用枚举创建的 EnumType w;}Struc
2022-05-07 18:06:36
1287
原创 C语言 strcat、strcpy、strlen、srtcmp函数
strcat()函数就是把字符串衔接起来strcat(a,b); 把b字符串接在a字符串后面 注意字符串长度不要溢出strcpy()函数用于字符串复制strcpy(a,b); 把b字符串复制给a字符串直接覆盖 也要注意字符串长度strlen()函数计算字符串长度,直接返回数值给你srtcmp()函数字符串比较 srtcmp(a,b); 如果两字符串相同返回0 不同返回1...
2022-02-10 22:41:20
1066
空空如也
4个io口控制6个按键和唤醒怎么做
2024-02-21
有没有提供项目源码带注释比较规范的网站供人学习的
2021-06-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人