nuoyigui9889
以微薄之力,为技术做点贡献。宇宙孕育的图标
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
project_bazhong
include <string.h>#include <stdlib.h>/** * @brief 将软件版本号转换为1字节数据(高4位+低4位) * * @param version 输入版本号(十进制整数) * @return unsigned char 转换后的1字节数据(0x00-0xFF) */unsigned char version_to_byte(int version) { // 将版本号转换为字符串处理 char ver_str[20];原创 2026-01-06 07:25:54 · 4 阅读 · 0 评论 -
NGL-OA
NGL-OA。原创 2025-11-29 19:13:19 · 22 阅读 · 0 评论 -
NB-IoT物联网燃气表各部分组成及工作原理详解
NB-IoT物联网燃气表各部分组成及工作原理详解。原创 2025-11-06 07:48:02 · 270 阅读 · 0 评论 -
将ft2232外部的EEPROM中的信息读出来的方法,方便写入到下一个eeprom里面去;
读取 FT2232 EEPROM 配置信息的方法步骤:下载并安装 MPROG:从 FTDI 官网 下载并安装 MPROG。连接设备:将 FT2232 设备连接到电脑。读取 EEPROM:打开 MPROG,选择正确的设备(如 FT2232H)。点击 “Read Device” 按钮,读取当前 EEPROM 数据。保存数据:点击 “Save File”,将读取的数据保存为 .bin 或 .hex 文件。写入到另一个设备:将另一个 FT2232 设备连接到电脑。原创 2025-05-24 17:51:08 · 539 阅读 · 0 评论 -
几篇stm32的USB做虚拟串口功能较好的文章,重点在详细的代码实现
详细代码实现数据发送(CDC_Transmit_FS)和接收(CDC_Receive_FS回调函数)。接收数据并回显(在CDC_Receive_FS中调用CDC_Transmit_FS返回接收到的数据)。包含波特率动态配置代码(通过CDC_SET_LINE_CODING命令修改波特率)。在usbd_cdc_if.c中实现CDC_Receive_FS回调函数处理接收数据。动态配置波特率(通过CDC_SET_LINE_CODING命令)。提供USB转TTL功能实现(将接收到的USB数据转发到串口3)。原创 2025-05-16 09:09:57 · 290 阅读 · 0 评论 -
IO引脚定义(cheng)
chengzong 给的IO引脚;原创 2025-05-09 10:07:42 · 141 阅读 · 0 评论 -
DapLink的源码分析:
虚拟文件系统(VFS)路径:source/vfs_manager.c、source/virtual_fs.c功能:实现 U 盘模式,支持固件文件(.hex/.bin)的拖放烧录。DapLink 源码深度解析:架构、功能与实现原理DapLink 是 ARM 推出的开源调试工具,基于 CMSIS-DAP 协议,通过 USB 实现微控制器的程序下载、调试和内存读写。核心功能包括:USB转SWD/JTAG协议转换:通过USB接口与主机通信,将调试命令转换为SWD或JTAG信号,以控制目标MCU。原创 2025-05-07 08:36:27 · 499 阅读 · 0 评论 -
USB资料摘录for后期,bus hound使用
一、STM32F105 USB调试:专家级错误分析与调试技巧:在实时操作系统(RTOS)中进行USB调试时,开发者需要考虑任务调度、中断优先级和资源共享等问题。STM32F105在支持RTOS的环境中调试USB,应重点分析USB驱动与RTOS内核之间的交互,以及如何避免可能的竞态条件。在商业级应用中,STM32F105作为嵌入式开发的核心,经常被用在需要USB调试的场景。例如,在一个智能医疗设备中,STM32F105负责处理与USB相连的外部设备的数据传输。原创 2025-05-05 21:56:12 · 130 阅读 · 0 评论 -
文档项目:攻坚克难
解决了转速相对偏差、稳定精度不够高的缺点,现有离心机转速相对偏差%1,稳定精度%0.5(行标:转速相对偏差±2.5%,转速稳定精度±1%),这样的高精度直流电机可用于高精度血液成分分离,减少血液成分污染,如临床用血浆、血小板分离以及对离心机转速稳定精度有更高要求的国家。鉴于交流离心机存在的缺点:转速相对偏差、稳定精度不够高;4、 采用MCU并结合Modbus RTU通信技术,对离心机的速度进行变速控制,实现了离心机在采集过程中,速度动态可调的技术创新,以满足未来产品可能在不同的采浆阶段对不同速度的需求。原创 2024-06-17 21:00:19 · 204 阅读 · 0 评论 -
bldc整机调试问题记录
而HAL_UART_Transmit_()为阻塞发送函数,最后一个参数为超时参数,如果发送批量数据,超时时间到后,未发送完的将不发送。针对问题5.调试发现,while中调用的脉冲输出xx函数里面调用了500ms的延时,总共就大于了喂狗1s时间,所以重启。2.串口发送如果太快(dma发送等),即使MCU端发送完了,终端响应可能会滞后,导致收发冲突。针对问题2.分析是串口接收中断被搞死了,发送正常,所以还能启动控制。针对问题1.结合厂家回复,两种情况,要么是心跳死了,要么是过压。针对问题3.串口接收中断死了。原创 2024-05-17 21:07:14 · 456 阅读 · 0 评论 -
总结_工程中代码优化的优化问题
后面去搜索了些相关资料发现,因为中断函数的优先级比主函数要高很多,所以当中断产生的时候会优先执行中断,如果在中断里面加延时函数,会导致中断的时间过长,而主函数得不到有效的时间去执行,同时中断处理的要求是即时处理,尽快退出,加了延时就违背了这样的要求。如果是有多个中断处理的系统,中断处理调用了延时,则比它低优先级的中断在延时处理完之后都是无效的啦,这样会拖慢整个系统的执行效率。这可能会对实时性要求较高的系统造成问题。如果在中断处理程序中添加延时,会导致中断处理程序的状态被保留,可能破坏可重入性的要求。原创 2024-05-16 22:41:12 · 138 阅读 · 0 评论 -
ok_无际的九!
长文干货预警 | 单片机常用的9种软件架构!原创 2024-04-29 20:44:18 · 87 阅读 · 0 评论 -
预研项目完成后小批量验证(技术变更流程)
原创 2024-03-01 10:05:25 · 265 阅读 · 0 评论 -
DP80之抗凝称盐水秤_总结zuo灵衡和普瑞逊
电子秤类别接口配置参数抗凝剂秤(灵衡)波特率19200,数据8bit,无效验,1停止位盐水秤(普瑞逊)波特率19200,数据8bit,无效验,1停止位注:在80机上,采用485通信总线连接抗凝剂和盐水电子秤,抗凝剂电子秤的从机地址为0x01,盐水电子秤的从机地址为0x02电子秤的使用MODBUS协议来进行通信,主要使用调零指令、校准指令、读取称重指令。注:要先执行调零,再执行校准!原创 2024-01-03 15:16:12 · 549 阅读 · 0 评论 -
80机华南独山更改点算法--对每个循环显示的优化
uint16_t Hex_to_TwoBitsASCII(uint8_t data) //十六进制转换为2个字节的ASCII码,flag,0正数,1负数。//测试需更改点1,重点验证56789个循环的时候;//测试需更改点2//针对华南每个循环显示的优化;if(data_cycles<3) //采集不满3个循环的时候。#define volume_plasma_cycle 100 //更改点3。原创 2023-12-27 18:53:32 · 985 阅读 · 0 评论 -
【无标题】dp80采集机和机器人通信相关框架总结
类似于dp80,将整个过程进行了分解如下:类似于dp80,将整个过程进行了分解如下:上位机界面在进行点击操作的时候,先是通信协议的解析,解析后改变采血的控制状态如下:从callstack窗口调出,就发现了通过cnt = ptr_protocol->hal.ptr_rx_hal(ptr_protocol->hal.dev_handle, chbuf, 1024);才到下面的接收函数中的。Main中各采集阶段的命令字的来源:commond_ARM为system中的全局变量;原创 2023-11-22 18:15:26 · 119 阅读 · 0 评论 -
ok_modbus主从机例程
原创 2023-11-14 17:48:15 · 107 阅读 · 0 评论 -
***数据转换中常用的两个函数 sscanf,sprintf
if(screen_id==4) //画面ID2:文本设置和显示。\details 当文本通过键盘更新(或调用GetControlValue)时,执行此函数。\details 文本控件的内容以字符串形式下发到MCU,如果文本控件内容是浮点值,\param control_id 控件ID。\param screen_id 画面ID。\param str 文本控件内容。原创 2023-09-01 16:13:48 · 219 阅读 · 3 评论 -
算法:modus的acsii码的LRC校验位的计算
数据(2n个字符)两两组成一个16进制的数值,然后将这些数值相加,将所得加值与256求模,然后用256减去所得模值,得到的数值即为检验值(即:sum%256后取反,再加1)。数据值拆分:010508070000 -->0x01 0x05 0x0B 0xE7 0xFF 0x00。起始字符(1个字符)+数据(2n个字符)+校验值(2个字符)+结束字符(2个:回车+换行)。求和: 0x01+0x05+0x0B+0xE7+0xFF+0x00 =0x01F7;加1: 0x08+1=0x09 (校验值)原创 2023-08-25 15:10:21 · 845 阅读 · 4 评论 -
算法:数据转换处理2(云台显控)
void ItailAngleView(uint8 north, uint8 pna, uint8 length, uint8 pit,uchar *ss) // 达到精确判定效果需要云台给出停止时的停止信号,目前为简单判定。void Itail_i_to_c(uint32 data, uchar *ss, uchar type) //type == 3 经度 other 纬度。void guidView_L(uint8 h, uint8 l, uint8 clr) //h 行位置;原创 2023-08-25 10:29:11 · 292 阅读 · 0 评论 -
算法:数据转换处理1
***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/// CRC 低位字节值表。CRC循环中的索引 */低CRC 字节初始化。src : 源缓冲区。src : 源缓冲区。原创 2023-08-25 10:26:33 · 334 阅读 · 0 评论 -
终极调试利器__stm32的Event Recode(安富莱电子开发板v6手册)
终极调试利器。原创 2023-08-24 19:58:22 · 127 阅读 · 0 评论 -
★80交流驱动器通过rs485接口设置速度(附ascii表)
#手册上的通信协议及数据帧说明。##1抓取的数据及解析。原创 2023-08-23 21:16:12 · 207 阅读 · 0 评论 -
stm32读写片内flash项目总结(多字节读写tongxindu)
define ADDR_FLASH_SECTOR_9 ((uint32_t)0x080A0000) //扇区9起始地址, 128 Kbytes。#define ADDR_FLASH_SECTOR_0 ((uint32_t)0x08000000) //扇区0起始地址, 16 Kbytes。#define ADDR_FLASH_SECTOR_4 ((uint32_t)0x08010000) //扇区4起始地址, 64 Kbytes。原创 2023-08-22 18:54:39 · 973 阅读 · 2 评论 -
*看门狗原理及注意事项
2.看门狗工作原理:假设计数值为1000,计数间隔时间为1ms,定时时间就为1s,看门狗就会在1s后执行单片机复位(计数值递减到0)。如果在计时结束前,执行喂狗操作,看门狗就会程序开始计时,比如在计数值300的位置执行喂狗,看门狗的计数值就会在1000和300间循环变化,不会导致系统复位。但当系统死机时,将无法执行正常的喂狗操作,看门狗的计数值就会一直递减到0,使系统复位,程序正常工作。3.看门狗的使用原则:看门狗的使用原则是系统正常工作时不复位,系统死机时尽快复位。原创 2023-08-22 12:07:46 · 796 阅读 · 0 评论 -
频率和占空比计算
如图,配置出来的PWM频率为f = 24M/Pre/Per Hz,即24M/12/100 = 20kHZ。占空比P = pulse/per *100%,即60/100 = 60%。若想设置PWM的占空比则在程序里面调用函数__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1,80(占空比:80%));原创 2023-08-02 21:06:16 · 1290 阅读 · 0 评论 -
泵速度及离心机速度计算
(90/60)*1000=1.5khz (此处乘的1000是一圈1000个脉冲)—这样说来控制板之前设置的1hz应该不对,之前貌似测试的时候也发现示波器测试的波形一直在改变。(7500/60)*1 = 125hz(此处乘的1是一圈1个脉冲)原创 2023-08-02 21:02:54 · 450 阅读 · 0 评论
分享