- 博客(4)
- 资源 (9)
- 收藏
- 关注
原创 一个简单的逼近求解方法
定量计算的时候,一般情况下,浓度是X坐标,OD值是Y坐标。根据OD值获取浓度结果,需要求解曲线方程。可以采用无限逼近的办法。设置一个合理的起点和步长,计算差值,如果差值扩大了就步长反向减半。
2025-11-12 09:33:18
213
原创 STM32F103的CAN通讯的简单设计
首先,1#板的232线程收到PC指令,看指令ID,如果不是自己的就插入缓冲区(找空闲的),标记为CAN发送,这样CAN线程就能轮询得到,然后通过CAN发送。Board线程和电机123线程轮询缓冲区中待执行的,还要根据指令区分是不是自己的,然后执行,执行的结果也要插入到命令缓冲区,标记为232发送。232线程就能转发到PC。1#主板作为中转,负责把其他板的CAN信息转发232到PC,把PC通过232的指令转发给其他单片机。CAN的通讯采用中断模式,本例中仅仅负责通讯帧的发送和接收,不负责任何的业务逻辑。
2025-10-23 17:00:12
368
原创 STM32F103的串口通讯的简单设计
接收线程也只是把字符串解析成命令和数据,不负责处理命令,不负责任何业务只是解析协议,只是把命令插入到一个命令缓冲区。业务执行的线程负责轮询命令缓冲区,并执行。业务线程应该有好几个,要用到互斥信号访问命令缓冲区。这个初始化网上很多,Keil 5.26下也大差不差,大部分是网上抄写的,使用中断模式。中断函数就是把串口数据转移到缓冲区,缓冲区的大小可以根据业务需要调整。
2025-10-17 16:39:16
131
原创 STM32F103的Booter和APP的设计
Booter和APP之间 0x4000~0x7000是用户数据区,可以存储传递APP的长度、校验等,也可以存储是否升级APP的标记等。#define FLASH_APP1_ADDR 0x8007000 //第一个应用程序起始地址(存放在FLASH)//验证APP,跳转到APP,否则就是Booter自己了。//串口线程,接收APP的代码。//CAN线程,接收APP的代码。B、读写用户数据,可以写入升级标记、APP的校验、APP的长度等。//初始化APP堆栈指针(用户代码区的第一个字用于存放栈顶地址)
2025-10-16 12:17:08
638
一个stm32f103制作的Booter例子
2025-11-05
STM32F103 使用片内FLASH存储用户数据,比使用IIC芯片方便的多 Flash.c
2025-10-15
自己制作的定量算法工具JVD-FIT
2025-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅