自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 两种PID运放电路: 串并, 并串

从网上多次抄来的两种PID运放电路: 串并, 并串

2025-11-30 11:39:11 205

原创 通过keil RTE, 移植freertos到GD32F103C8. 用最新的freertos V11 + compiler V6

注意最新版的keil, 器件库的安装目录不再在C盘的根目录, 而是在user/appdata里面, 安装错了, keil里面新建工程找不到厂家和器件.而我想用最新的freertos V11 + compiler V6, 所以只能自己新建和移植.1. 首先安装 相应MCU的keil驱动, 器件库, 一般各大MCU的官网都有, 耐心找找.然后要新建一个main.c和gd32f10x_it.c, 加入到工程, 点编译看能否通过.因为很多例程都是基于V10版的freertos和arm compiler V5.

2025-11-14 09:42:58 190

原创 串行通讯, 怎样可靠获多byte的帧头?

一定要在帧头不对的时候, 重新找帧头!, 以免连续的头部出错时, 比如: 0xfe 0xfe, 失去同步。比如: 三个固定的帧头: 0xfe, 0x0f, 0xbc。串行通讯, 怎样可靠获多byte的帧头?

2025-09-12 16:24:21 213

原创 MCU移动平均的集中算法

3. 不需要数组来存放历史数据, 用一个总和sum来存储. 很次用时先减去sum/64, 然后加入新的数据到sum, 返回新的sum/64。2. 优化的: 使用当前需要替换的元素index来更换新的数据, 避免耗时的逐次移动。

2025-08-19 16:41:36 204

原创 转: jlink设备管理器显示的有,但keil无法识别

在通用串行设备里面有J-LINK, 但是在通用串行总线控制器里面看不到, keil也找不到.

2025-05-17 10:15:48 312 1

原创 一段测试好的NTC RT表插温度的算法, 采用二分法, RT表是倒序的(大到小排列)

【代码】一段测试好的NTC RT表插温度的算法, 采用二分法, RT表是倒序的(大到小排列)

2025-05-13 16:47:13 136

原创 AD7616 IO模拟SPI驱动大法

2. 基本的SPI读写驱动, 注意1.官方的文档可能误导, 2.由于速度极快, 不需要loop延迟.开始转换, 注意, 要隔开两个写操作, 才能读出想要的通道的ad。AD7616因为官方的例程不够, 可能在调试的时候碰到很多坑.1. 首先保证AD7616的管脚正确配置成SPI驱动。3. 初始化AD7616, 最好读出来看看正确与否。

2025-03-16 16:45:36 789 2

原创 STM32 U盘drive开发笔记

ww1. 首先在cube里面选用USB OTG, fats 文件系统2. 在main函数里面初始化和USB消息轮询: MX_USB_HOST_Process(); 是获取到U盘的状态当收到的消息是: 1. HOST_USER_CLASS_ACTIVE, 表明U盘驱动和文件系统已经可以读出文件了, 执行: read_write_U_disk_file_data();2. HOST_USER_DISCONNECTION和HOST_USER_CONNECTION 表示u盘的拔插* read_wri

2025-03-10 11:14:01 289

原创 CANopen帮你入门

PDO的目的是想高效快速传输参数, 因此不想在数据区8byte里面有多余的东西, 那就约定好在里面放入哪些对象字典里面的项目, 因为PDO有ID里面4组(tx/rx)地址, 可以传输: 4*2*8=64byte的数据。有运行参数:比如充电的电流,电压,so,c温度等, OTA要传给MCU的bin文件的大小crc等。​​​PDO: 快速的数据, 不要应答, 比如电流,电压,so,c温度等。SDO: 最要的数据, 要求有应答, 主机设置充电器的关键参数等。对象字典的索引分为16位的主索引和8位的子索引。

2025-03-07 11:18:19 326

原创 MCU 典型的模拟量多点校准方法

直接上图。

2025-02-24 10:12:00 314

原创 非阻塞和线程安全的printf

2.采用发送中断(用循环队列) , 或者DMA发送, 同时系统不采用抢占式和时间片(任务只能自己切换), 同时不要在中断里面调用printf, 也能保证发送单线程执行.原生的printf固然简单, 但是有两个缺点1. 阻塞线程, 2线程不安全, 我想改为非阻塞和线程安全的printf.3.在一个最低优先级的task里面接收发送队列, 然后发送, 其他任务就绪都能优先执行. 达到发送不阻塞的效果.1. 重写printf函数, 在产生格式化字符串的时候要。1. 采用发送中断(用循环队列写入和读出)

2025-02-14 17:11:49 201

原创 mcu int类型的长度和对齐

int等数据长度的不一样, 要不要对齐, 其实是c语言的一个大坑, c语言只是用short, int, long等数据类型, 但是不同的处理器, 对应的bit数量大相径庭, 给移植和编程带来很大的麻烦.32位机: 指针, int, long, float都是32bit的, long long, double是64bit。8位机: 16位机: 指针, int, float都是16bit的, long是32bit的。首先所有的处理器: char是8bit, short是16bit,

2025-01-03 14:41:38 379

原创 STM32F103 OTA bootloader 怎样进入不同的APP分区?

需求: ota升级通常要把代码(bin文件)通过串口/can/usb/蓝牙/4G传输到mcu, 这个传输要么通过booltoader处理, 要么通过app处理, 我觉得最好是app处理, 这样减少bottloader的代码量, 避免重复.app收到bin, 虽然可以存在外部flash上面, 但是最好存到另外一个app区, 这样速度快, 成本低, 最最要是可以两个app区相互备份, 升级不成功就换到上次成功的app分区.mcu片内分区4个: (128K ROM, 1k/page)0x80

2025-01-03 10:15:22 1020 1

通过keil 移植的实际工程

通过keil 实际工程, 通过keil RTE, 移植freertos到GD32F103C8. 用最新的freertos V11 + compiler V6

2025-11-17

通过keil RTE, 移植freertos到GD32F103C8. 用最新的freertos V11 + compiler V6

通过keil RTE, 移植freertos到GD32F103C8. 用最新的freertos V11 + compiler V6

2025-11-14

空空如也

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

TA关注的人

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