- 博客(13)
- 收藏
- 关注
原创 STM32F4外部flash下载程序
若在接收过程中同时进行擦除和写入操作,会因耗时过长而增加丢包风险。因此,为了优化性能,避免丢包,并减少因串口中断引起的跨扇区写入问题,预先擦除Flash成为了关键步骤。
2024-06-29 16:31:20
368
原创 基于cc936.c的外部flash的GBK与Unicode相互转换
首先从文件系统fatfs里得到cc936.c,然后把这个c文件添加到自己的工程,再创建一个头文件cc936.h(其实不创建也可以),再把其中一个数组注释掉,修改ff_convert函数,还有另外一个函数我直接删掉了,然后再添加一个把数组写入flash的函数,就可以了。cc936.c里有两个87k的巨大数组,也就是GBK与Unicode的转换表,通过查表就可以得到转换之后的编码,但是由于数组太大了,每次下载程序都要多花一些时间,有些单片机甚至无法同时使用两个转换表。
2024-05-29 17:36:37
684
1
原创 STM32F4 bootloader程序
STM32的Bootloader主要负责在设备上电或复位后初始化硬件,然后加载并启动主应用程序。它还可以提供一些额外的功能,如通过串口、USB或其他接口进行程序烧录,支持固件升级,以及在开发过程中的调试。
2024-05-21 16:07:24
778
原创 C语言实现模拟内存池管理,可用于stm32等内存较少的环境中
但是这样有一个缺点,stm32的内存资源相对来说是比较少的,而动态分配内存的大小取决于 .s 启动文件的 Heal_Size 的大小,一般来说,stm32f407 默认的堆大小是0x200,也就是512字节。当想要动态分配1k或者更大的空间时,就可以修改 Heal_Size 的大小,但是 Heal_Size 太大的话,会影响单片机的性能。以stm32f407为例,有时候想动态内存使用,就可以使用malloc函数来分配空间,使用完之后再使用free函数释放掉。
2024-03-23 11:47:28
187
原创 STM32F407 通用 串口初始化,一个函数解决
当我们同时使用多个串口资源的时候,一般来说会建立多个 c 文件,然后在每个c文件里写上大差不差的初始化过程,这时候代码就会显得很臃肿,那么有没有一个办法可以实现只使用一个初始化函数,解决所有串口的初始化呢?以下是我的一个不成熟的小想法,欢迎大佬提出修改意见。
2024-03-15 08:57:00
321
1
原创 DEV C++双链表的一些基本操作
创建空链表 求长度 输出 后插法创建链表 查找第i个元素 插入 查找某个值的位置。删除 链表冒泡排序 两个无序链表 合并为一个有序链表。
2022-12-01 12:01:56
511
原创 DEV C++单链表的一些基本操作
初始化 按序号查找值 按值查找序号 插入 删除 前插法创建 后插法创建。求链表长度 数组冒泡排序 单链表冒泡排序 两个无序表合并到第三个表。
2022-11-29 12:39:55
562
STM32F4 bootloader程序
2024-05-21
STM32F407标准库作USB Host CDC 与广和通 mc665 AT通信
2024-03-11
关于#c++#的问题:为啥使用free(数组)之后,链表返回出错
2022-11-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人