自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 存储空间操作

存储空间操作

2025-09-11 22:39:15 324

原创 beacon-dongle系统(二)AP及Server建立

浙江工作最后阶段写了“beacon-dongle系统(一)http通信逻辑”,今天继续对这篇文章进行补充。之前的文章主要是关于查询、配置命令,该功能已经展示了beacon-dongle系统的通信逻辑,打通了上位机(client)、dongle(server)、设备节点(beacon)三者间的通信。简要讲了http通信的逻辑,给出了创建无线网络接入点(Access Point,AP)时,调用的配网指令。这篇文章给出了当时创建AP时调用的接口,并对http服务器创建过程进行些补充。

2025-08-12 22:50:04 927

原创 短路后怎么办

电源短路后,没有明显烧焦痕迹,可以取滤波电容试试,看能否就回来。

2025-07-19 08:05:07 241

原创 Ymodem传输协议过程

Ymodem协议数据传输过程分析 本文记录了作者使用Ymodem协议进行文件传输的实际操作经验与发现。Ymodem协议与常见串口协议不同,由接收方主动发起通信。协议格式包含帧头、ID、信息块和校验和,信息块长度由首字节决定(01为128字节,02为1024字节)。作者通过SecureCRT和串口调试工具模拟传输过程,发现实际应用中存在与文档不一致之处:1)第一包数据请求应使用0x43或0x6,后续用0x6;2)上位机可能连续发送多包数据;3)可通过全零数据包识别传输结束。文中展示了具体通信报文,并指出程序实

2025-07-12 12:01:39 811 1

原创 台体操作须知

使用脉冲法进行电量测量时,若是三相有功模式,台体默认脉冲常数为有功脉冲常数,脉冲法检测有功脉冲。短接按钮按下后,指定表位无电流输出,其他表位电流输出不受影响。而且,台体电流经过三表位电流端子形成一个闭合回路,三表位任何一相电流断开,台体都会报警,停止电流输出。部分台体配置有电流短接按钮或短接片,表位短接后,台体报警Ix电流保护,停止输出电流。通过按钮可直接设置电压电流的输出路数、台体功率因子(0.5L,0.8C)、电流大小(20%Ib,50%Ib,100%Ib,这里的Ib是基准电流,不是b相电流。

2025-06-20 08:28:57 197

原创 Keil进阶操作

工作中学到的keil操作技巧

2025-06-08 21:01:49 682

原创 J-Flash

J-Flash读写擦除操作

2025-06-08 09:24:33 999

原创 SPI调试心得

之前一直调用已有的驱动,实现SPI通信,所以调试的难点多在于极性,相位,数据长度,软硬件片选。再深一些,才意识到SPI通信是全双工通信,发送和接收同时进行。主机先发送命令,再发送冗余字节,为从机提供时钟信号。刚开始工作,主要关注的也是单主单从,后来时间久点,开始接触到多主一从。多主一从场景,两个主机不能同时操纵从机,但大家有没有考虑过,空闲状态的主机该如何配置,是否会对正常工作的主机产生影响。最近一段时间,开始接触gpio模拟SPI,工作也开始向底层偏移,有幸看到SPI从机工作的代码。

2025-01-27 10:15:27 412

原创 KEIL、SVN、DSVIEW使用技巧

嵌入式开发技巧

2024-12-01 22:58:43 1301

原创 GPIO模拟SPI

GPIO模拟SPI时钟控制过程分析

2024-11-26 09:00:00 461

原创 Keil吐槽

之前一直用stm32cubeIDE,工作变动后,改用keil,刚开始就遇到些小问题,主要是关于高亮功能和keil5打开keil4工程的。

2024-10-06 23:28:31 1802

原创 通信协议感悟

本文结合个人所学,简要讲述SPI,I2C,UART通信的特点,限制。

2024-10-01 10:59:04 806

原创 HT7036计量芯片(二)

HT7036计量芯片SPI通信调试心得。

2024-07-19 17:13:42 1504 9

原创 Indepent/Dual ADC+DMA+Software/Hardware Trigger

后来写的第三篇ADC文章——High-resolution timer ,HRTIM(二),代码基于STM32G474,这篇文章属于Dual ADC模式,PWM中心触发ADC采样,DMA进行数据传输。前两篇属于软件触发ADC采样,第三篇属于通过硬件事件触发ADC采样。同时,第一篇属于Independent ADC,后两篇属于Dual ADC。本篇文章,将在STM32F103芯片上,分别实现Independent ADC+DMA+ Software,Dual ADC+DMA+Software/Hardware

2024-07-17 07:49:23 853

原创 High-resolution timer ,HRTIM(三)

本篇主要讲述repetition interrupt,demo程序在repetition中断处理程序中执行PID算法,依据电压外环,电流内环计算占空比,追踪最大功率点。HRTIM频率1.36GHz,PWM波频率250KHz,4us触发一次定时器更新时间。在保证PWM频率不变的前提下,原本打算通过设置条件,决定是否执行中断处理程序中的PID算法。通过设置HRTIM_MREP寄存器数据,可以做到不改变PWM频率前提下,改变HRTIM更新中断的触发频率。当然,也可以把程序写在。

2024-07-10 10:39:30 1066

原创 High-resolution timer ,HRTIM(二)

本篇以STM32G474芯片为例,主要讲述HRTIM如何在PWM中点处触发Dual ADC采样。首先,我会介绍Dual ADC,然后介绍PWM触发ADC采样。模块的详细描述,见RM0440 Rev8。我此前也没有independent adc和dual adc的概念,这次程序移植过程,给了我些浅薄认知,不管对错,先记录下来。另外,再给大家推荐一个链接,这是ST工作人员写的文章。

2024-07-09 16:44:32 1619

原创 High-resolution timer ,HRTIM(一)

HRTIM生成PWM

2024-07-09 15:02:55 1847

原创 模拟死区时间

PWM,延时模拟死区时间

2024-04-20 12:00:26 1139

原创 beacon-dongle系统(一)http通信逻辑

紧接着是 open(),这个函数发生了之后 xmlHttp.readyState 的值是 1 了,那么就会有一个断点在 Open() 函数处断开,保留现场,紧接着又返回到 xmlHttp.onreadystatechange = handlestatechange 运行,然后再执行 Send() 函数,这个函数发生了之后 xmlHttp.readyState 的值是 2 了,接着又返回到 xmlHttp.onreadystatechange = handlestatechange 运行。

2024-04-11 23:42:37 905

原创 HAL ADC

ADC读取及校准

2024-04-11 23:11:49 616

原创 死区时间与互补PWM

死区时间与互补PWM

2024-04-11 22:45:40 1154

原创 PWM and Buck-Boost

目标:使用STM32CubeIDE编程,控制STM32F103输出200KHz的PWM波形,且占空比可通过串口动态调节。

2024-04-11 22:00:42 919

原创 串口中断丢包&PWM波形畸变

无语了,这不就是个低通滤波电路吗,超过截止频率的波形,直接滤除,怪不得可以输出10KHz PWM波,不能输出100KHz。好的,就是它了,按照这篇博客写了串口中断的代码,功能实现了。写这一篇博客前我应该狠狠的反思下,为什么会犯如此低级的错误,之前在学校一直调用实验室构件,自己写相关代码,使用STM32CUBEIDE后,我反而不会写代码了。fuck,我居然在中断里面加了打印信息(中断里面不能使用耗时操作,这是常识,我真是把以前学的都还给老师了,吐血),还误以为HAL库的验证操作费太费时,导致串口丢包。

2024-03-05 19:44:09 734

原创 gpiolib函数调用

gpiolib所以我采用上面的博客链接,添加了虚拟驱动,并在该驱动中改变gpio27引脚的电平,以触发与之相连的gpio0引脚的中断。这样,可以兼顾系统加载与gpiolib测试的需要。如果想在其它模块中改变gpio引脚的配置,需要在dts中做出相应修改,具体内容如下。开发人员拿到芯片后,依据芯片设计硬件电路板,硬件电路板相关的模块配置都记录在dts文件中,编译时,dts中的配置会覆盖dtsi中的配置。2.dts的gpio节点需要添加gpio-ranges,pinctrl-names,pinctrl-0属性。

2024-01-23 14:58:57 839 1

原创 shell

if else逻辑的结束用fi表示,if后的小括号()被中括号[]取代,condition两端必须有空格,防止“[condition]” ,“[condition” ,“condition]”被误认为变量,出现类似"["或者"]"未发现的错误([$1 not found)提示。shell变量不像C语言,存在变量关键字,如int,char。shell脚本的变量用$N表示,$0代表shell脚本,$1代表脚本名字后的第一个参数,$2代表脚本名字后的第二个参数。i++)的语法,C语言用的比较多,有点不适应。

2024-01-23 14:18:05 371

原创 wifi STA

通过socket(domain,type,protocol)函数创建套接字,domain标识IP地址族规范,这里采用IPV4地址族。创建成功后,再通过connect(s,name,namelen)经由35000端口,连接同一个局域网下的tcp server。wifi_set_opmode选择wifi节点功能,即ap(access point)或者STA(wireless station)功能。wifi_start_station创建wifi STA节点,并传入要连接的热点的名称,密码。

2023-12-18 20:43:50 404

原创 http传输OTA文件Bug解决

WIFI芯片直接将小于256字节的数据发出,私有协议芯片仍按照256字节进行校验,导致校验失败,OTA文件传输过程直接终止。通过实际测试,发现发现,可靠传输并不会丢包,只是会把数据放到下一包里发送,也不会因为这一包数据长度异常而停止传输(我之前OTA终止,是因为采用私有协议通信的芯片检测到传输的这一包数据存在问题)。最近做项目,采用公司自研WIFI芯片配置为网络接入点(access point,AP),用户进入指定网页,通过POST接口,传输指令,具体过程ESP32肯定比我讲的更详细,就不再多言了。

2023-11-05 12:38:58 330

原创 gstreamer插件错误:链接没有汇

不记得为什么要这样做了,给后来者做个参考。

2023-10-28 09:35:10 191

原创 HT7036计量芯片(一)

电表的设计可以采用MCU+ADC、MCU+DSP、MCU+专用计量芯片实现。后两种方式比较符合计量与数据处理分开进行的思想,可以有效避免两者之间的相互干扰,提高电能表的稳性。我做毕设时,采用第三种方式,使用的计量芯片是HT7036计量芯片。HT7036计量芯片自带计量程序,MCU只需要通过SPI协议从指定地址读取计量芯片测得的数据,再进行回归即可。 HT7036计量芯片的内部有6个ADC差分通道,分别对应三相电压、电流,HT7036计量芯片引脚图如下图1-1所示。HT7036...

2023-10-28 09:14:12 2445

原创 volatile

volatile

2021-11-23 10:03:47 4539

原创 mbedOS启动过程

使用芯片: MKL36Z64VLH6芯片启动到main函数之前的运行过程(1)芯片上电复位后,芯片内部机制首先从Flash的0x00000000地址,取出第一个表项的内容,赋值给堆栈指针MSP,完成堆栈指针初始化。(2)芯片内部机制将第二个表项,即复位处理程序Reset_Handler的首地址,赋值给程序计数(Program Counter,PC)寄存器。(3)芯片内部机制从PC...

2021-10-18 10:36:46 505

原创 1.1 GPIO构件制作之点亮小灯

1.1.1 GPIO基本概念1.通用I/O(GPIO)的含义所谓通用I/O,也记为GPIO(General Purpose I/O),即基本的输入/输出,有时也称并行I/O,或普通I/O,它是I/O的最基本形式。本书中使用正逻辑,电源(Vcc)代表高电平,对应数字信号“1”;地(GND)代表低电平,对应数字信号“0”。作为通用输入引脚,MCU内部程序可以通过端口寄存器获取该引脚状态,以确定该引脚是“1”(高电平)或“0”(低电平),即开关量输入。作为通用输出引脚,MCU内部程序通过端口寄存器控制该引

2020-06-03 14:04:59 1975

原创 1.3 ADC构件制作(STM32L431)

1.3.1 基本概念1.转换精度转换精度(Conversion accuracy)是指数字量变化一个最小量时对应模拟信号的变化量,也称为分辨率(Resolution),通常用模数转换器ADC的二进制位数来表征。2.单端输入与差分输入只使用一个输出引脚,使用公共地GND作为参考电平的叫做单端输入。而从微机的两个引脚接入模拟信号,AD采样值是两个引脚的电平差值叫做差分输入。通常在AD转换编程时,把每一路模拟量称为一个通道(Channel),使用通道号(Channel number)表达哪个模

2020-06-03 13:47:55 3265

通信协议YMODEM协议详解:文件传输技术及其实现要点

内容概要:本文档详细介绍了YMODEM文件传输协议,涵盖了其历史背景、协议定义、最低要求、设计初衷以及与XMODEM协议的区别和改进。YMODEM协议基于XMODEM/CRC协议,增加了批量传输功能,支持文件名、长度、修改日期等元数据的传输,优化了文件传输的可靠性和效率。文档还探讨了YMODEM-g协议,该协议在高延迟纠错环境中提供了更高的吞吐量。此外,文中详细描述了协议的具体实现细节,包括块结构、校验机制(如CRC-16)、错误恢复机制以及编程技巧。 适合人群:具备一定编程基础,特别是对文件传输协议有一定了解的开发人员和技术爱好者。 使用场景及目标:①理解YMODEM协议的工作原理及其相对于XMODEM的改进;②掌握YMODEM协议的具体实现,包括块结构、校验和计算、错误恢复等;③学习如何在不同操作系统和环境下实现YMODEM协议,特别是在高延迟纠错环境中使用YMODEM-g协议。 其他说明:本文档不仅提供了详细的协议描述,还附带了实际应用中的编程技巧和示例代码,有助于开发者更好地理解和实现YMODEM协议。此外,文档还提供了相关资源的获取途径,如TeleGodzilla公告板和Unix UUCP访问方法,方便进一步研究和测试。 英文原版上传不了,有需要的可以去这个地址自己下载 https://gitee.com/miuser00/ymodemwin/blob/master/XMODEM-YMODEM-Protocol-Refrence_881014.pdf

2025-07-12

keil5对keil4支持包

keil5直接打开keil4工程会报异常,无法正常使用,下载支持包后,可以解决该问题。用户可以在keil官网下载支持包,但下载速度较慢。

2024-11-30

空空如也

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

TA关注的人

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