- 博客(28)
- 资源 (19)
- 收藏
- 关注
原创 ModBus 协议
线圈寄存器支持读也支持写,写在功能码里面又分为写单个线圈寄存器和写多个线圈寄存器。保持寄存器:这个寄存器的单位不再是bit而是两个byte,也就是可以存放具体的数据量的,并且是可读写的。写也分为单个写和多个写,所以功能码有对应的三个:0x03 0x06 0x10。离散输入寄存器就相当于线圈寄存器的只读模式,他也是每个bit表示一个开关量,而他的开关量只能读取输入的开关信号,是不能够写的。输入寄存器:这个和保持寄存器类似,但是也是只支持读而不能写,一般是读取各种实时数据。0x0f: 写多个线圈寄存器。
2023-12-25 13:43:43
446
原创 字节对其,内存中位置分析
去掉字节对齐:__ALIGN_BEGIN g_usbd_property_descritpor 内存地址:0x20000112 非4的倍数。在进行USB 通讯,设备信息交互通讯 是按4字节进行对齐补齐,如果不进行对齐补齐,默认去对齐补齐位置获取数据 导致通讯获取描述符失败。#define USB_LEN_OS_PROPERTY_DESC 0x28 //特征描述符。通过以上分析 字节对比补齐是 在内存中自动按地址对齐补齐。
2023-08-15 18:10:21
192
原创 经验分享一:UART 可进入空闲中断,DMA却没数据
先配置DMA、再配置串口会导致接收不到数据,寄存器配置完全正确,非常奇怪的问题。GD32E508 UART3 可进入空闲中断、但DMA通道却没有数据。先配置串口再配置DMA。
2023-07-11 19:48:41
914
原创 行业交流群,大佬解析,保留下
由于在type之后加上##连接符,所以在代码中使用实际的type名称时,它会根据具体的type生成相应的函数名。定义了一个名为type的结构体名称,这个结构体的类型是struct type。这里使用了typedef关键字,将struct type重命名为type,以便在代码中可以使用type来代表这个结构体类型。通过使用宏定义和typedef,可以在代码中使用INTERFACE代表类型,并根据具体的类型生成对应的函数名。这样可以在代码中定义各种具体的type,并使用相应的函数进行操作。
2023-06-26 15:45:46
157
原创 WinUsb实现USB免驱通讯技术总结
在 Windows 8 或更高版本地系统上已经集成了该驱动程序,这意味着Windows 8 或更高版本地系统上不需要安装驱动程序,系统自动会匹配WinUSB驱动,而对于Vista、Windows7、XP系统,可以通过一些第三方软件(如Zadig)来安装或生成WCID版本的驱动程序,同样只需要安装一次WCID版本的驱动软件,以后所有WCID设备都可以使用该驱动,间接实现了免驱。0x81, /* 端点的特性:B3-B0(端点号), B6-B4(0), B7(1=IN, 0=OUT)
2023-06-03 11:18:37
3385
原创 WinUsb实现USB免驱通讯介绍
WinUsb设备的用途是让Windows将Winusb.sys作为设备的功能驱动程序载入,而无需自定义INF文件。在 Windows 8 或更高版本地系统上已经集成了该驱动程序,这意味着Windows 8 或更高版本地系统上不需要安装驱动程序,系统自动会匹配WinUSB驱动,而对于Vista、Windows7、XP系统,可以通过一些第三方软件(如Zadig)来安装或生成WCID版本的驱动程序,同样只需要安装一次WCID版本的驱动软件,以后所有WCID设备都可以使用该驱动,间接实现了免驱。
2023-06-03 11:05:34
3395
原创 MCU内存不足、及过度优化解决方案
其中,选择针对代码运行速度优化(Speed)时,若MCU剩余的资源空间足够,还可以勾选“Nosizeconstraints”选项,该选项将让编译器牺牲一部分的空间占用来换取最快的代码执行速度。在高等级编译优化时,可以选择项目的编译优化倾向,针对代码大小优化(Size)、针对代码运行速度优化(Speed)或平衡状态。在程序开发过程中我们常常遇到内存不足、编译工具过度优化程序、导致在线调试时,程序执行跳转到不可预期的地方,现针对以上提出的问题、提出以下解决方案、供后者使用;1.1、将优化等级调整到最高。...
2022-07-29 16:16:11
3059
原创 项目顺利进行需要条件
项目顺利进行需要条件本文主要根据自己工作经验、从“人、机、料、法、环”五个方面谈谈项目顺利进行需要条件。人: 即“人员”,任何一件事都离不开人的参与,也是事情顺利开展关键!就项目而言:人员如何参与到项目中,需要一个合理的分工。那么如何分工协作呢?产品经理: 产品经理主要负责整个项目功能需要、组织会议、确定项目需求,并下发项目需要说明书,并确定项目开发模型、切勿乱修改需求。项目组长: 主要盯整个项目进度、遇到问题及时处理解决,协调整个项目对内、对外人员、资源等项目模块中技术担当: 一.
2021-12-16 08:40:55
439
转载 读取W25QXX数据时的注意事项
使用w25读取flash数据的时候,上电第一次读取数据总是出错,之后读取数据便是正确的了,刚开始以为是片选脚的速率比SPI的速率低而导致先进行了SPI读取,然后再拉低的片选。因为查看cube发现片选脚的为最低速率10MHZ,而spi的速率则达到了12M以上,但是修改了之后,发现还是会出现这一个问题,最后使用逻辑分析仪,查看时序,才发现W25根本就没有识别到第一次发送的数据,片选脚在上电时是拉低的,而W25所需要的片选脚有效电平就是低电平,之后将默认电平改为高电平,完美解决问题。...
2021-01-18 11:31:48
663
原创 STM32操作TFBS4711红外模块、数据发送抓波分析
序言 : STM32内部USART支持红外IrDA物理层协议,可以配置成IrDA模式直接驱动TFBS4711,实现红外收发。一:STM32CubeMx对串口配置Irda模式如下所示:根据以上配置,CubeMX自动生成代码:二、单片机(红外模块)发送端添加以下代码:while(1) 中增加以下代码: HAL_IRDA_Transmit(&hirda1, (uint8_t*)"ABCD", 4, 0xFFFF); // 发送符号 HAL_Delay...
2021-01-07 13:00:12
3095
14
原创 STM32 BootLoader跳转之前关闭全部中断
// 关闭全局中断 DISABLE_INT(); // 关闭滴答定时器,复位到默认值 SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; // 设置所有时钟到默认状态,使用HSI时钟 HAL_RCC_DeInit(); // 关闭所有中断,清除所有中断挂起标志 for (int i = 0; i < 8; i++) { NVIC->ICER[i]=0xFFFFFF...
2020-12-30 15:52:27
3910
转载 tortoiseSVN的使用,如何删除服务器上某些版本?
具体操作:bai1、在受SVN控制的某层文件夹或文件上点右键,选择“TortoiseSVN-显示日志”2、在弹出的日志窗口中,右键点击要复原的版本,选择“复原到此版本”3、复原结束后,执行“提交”操作,将此版本作为版本库的最新版本比如你从50版复原,复原后产生的101版实际和50版是一样的,再往后的工作就和正常一样进行了如果要彻底从库中删除51-100版,那就很麻烦了,得把服务停掉,然后用svn的过滤工具来处理,非常的麻烦...
2020-10-16 08:23:51
2515
原创 IAR BootLoader,APP程序互相跳转,进入Hard_fault 错误,
IAR BootLoader,APP程序互相跳转,进入Hard_fault 错误捣鼓两天,才定位到问题所在,cubmax 创建工程IAR工程优化等级,过高,调低一点即可
2020-09-25 18:15:16
1133
原创 Error[Pe020]: identifier “HAL_StatusTypeDef“ is undefined
解决办法: 添加头文件 #include "stm32f4xx_hal_def.h"#include "stm32f4xx.h"#include "stm32f4xx_hal_def.h" 注意:必须先添加 #include "stm32f4xx.h " 再添加 #include "stm32f4xx_hal_def.h"否则报同样的错误
2020-09-04 17:01:06
896
原创 MSP430、STM32、8051单片机fatfs 文件系统移植 W25Q128
前言嵌入式系统中我们常常对flash、SD卡、U盘等进行操作,但我们操作一般是直接操作物理地址,使用起来相对来说比较繁琐,也不能将我们自己写的数据导出到我们的电脑中,这时大名鼎鼎的文件系统fatfs就可以派上用场,fatfs是一小型的可裁剪免费文件系统,移植起来比较方便,移植完文件系统大大缩短开发周期,可以很方便的操作内存,废话不再多说,下面开始介绍移植文件系统步骤:参考:https://blog.youkuaiyun.com/qq_21475601/article/details/78032854ht
2020-09-02 17:19:48
3153
原创 485通讯,发送完数据从机立刻返回,主机接收数据不完整问题
void UART485_TX_START(void){ RS485EN(1); for(ProbeUart_TxIdx =0;ProbeUart_TxIdx<pProbeUart_TxBuf;ProbeUart_TxIdx++) { // Load data onto buffer USCI_A_UART_transmitData(USCI_A0_BASE,ProbeUart_TxBuf[ProbeUart_.
2020-06-28 15:34:14
3773
原创 MSP430F5438\MSP430F5438A 操作大内存(Ram),程序跑飞
可以参考TI网站如下:https://e2echina.ti.com/question_answer/microcontrollers/msp430/f/55/p/189352/580926#580926MSP430 Memcpy 不建议大量数据的拷贝,经测试少于4K 字节是可以的,平台MSP430F5438开始申请大容量RAM,程序跑飞解决方案,以及原因需要重定义 __low_level_init 启动代码中会调用该函数,去关闭看门狗,现在很好奇的是,启动代码初始化,申请内存,能耗时那么.
2020-06-09 10:58:52
879
原创 ST系列芯片被锁解决方法,借助stm32cubProgrammer,本例程是针对STM32wb55系列
STM32WB55单片机 被锁解决步骤第一步:BOOT0 IO口拉高 如下电路图所示:跳冒短接VDD,BOOT0引脚,或者自己想办法接到3.3V电源上第二步:随意下载一个与本单片机对应的正常程序通过STM32CubeProgrammer软件任意下载一程序即可,解锁程序2.1 如上图标识:1 检查stlink Serial number2 选中Stlink3 点击Connect2.2 点击connect 以后出现如下所示:出现SUccessfu...
2020-05-25 14:51:46
4995
3
原创 MSP430系列单片机通过下载器,完成脱机下载功能
MSP430XXXX 程序脱机下载步骤:第一步:通过CCS软件将.out生成.hex文件1.1 选中工程->选择属性如下图1.2 勾选Enable MSP430 Hex Utility 再点击Apply and Close1.3进入到你生成的.out 文件,会出现.hex文件第二步: 安装 uniflash_sl.5.0.0.2289.exe软件工具包在本目录下根据自己的安装盘完成安装安装完成电脑上会出现该图标必须将仿真器MSP43...
2020-05-21 16:52:37
2971
4
原创 8位单片机 普通IO模拟SPIMaster 之前写的模拟SPI 怕丢了,直接粘贴过来,平台是南京沁恒CH559 8位单片机
/********************************** (C) COPYRIGHT ******************************** File Name : SPI0Mater.C* Author : WCH* Version : V1.3* Date : 2016/06/24* Description : CH559提供SPI0主机模式操作接口函数 ..
2020-05-14 21:48:32
511
原创 ASCII码 方面以后自己使用,
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
2020-04-30 12:46:38
255
原创 基于正点原子Alpha LInux 开发板 ssh服务器的搭建,以及IP地址静态设置
基于正点原子Alpha Linux 开发板ssh服务器 搭建,以及IP地址静态设置。写本文目的,自以后能回顾下,也希望有需要的能借鉴下,写的不是很好,有不懂得地方可以留言.首先楼主在正点原子开发板自带Linux系统上经过多次尝试,搭建ssh服务器,以及静态IP地址的设置,最终还是失败告终, 最终在一位热心的网友帮助下,成功搭建ssh服务器,IP地址 的固定设置,废话多说,下面看搭建...
2020-04-21 22:11:07
2771
3
GD32E508 CAN FD 例程代码,GD32E508 CAN2 PE0 PE1引脚配置CANFD 实现残数据通讯
2023-10-10
GD32E508 实现WinUsb代码工程,GD32E508 HS Device 工程实现WinUsb USB 免驱
2023-08-15
GD32F303CB 实现WInUsb免驱工程
2023-05-29
基于正点原子STM32F103RCT6开发板 实现WinUsb免驱功能
2023-05-05
IpTool网络抓包工具
2022-07-14
C/C++ 很好用的CJSON 通用库、组JSON、解析JSON
2022-07-08
STM32操作TFBS4711红外模块
2021-01-07
MSP430文件系统fatfs.zip
2020-09-03
MSP430文件系统fatfs.zip
2020-09-02
MSP430脱机下载工具LSD_FET430UIF驱动以及程序烧写步骤.zip
2020-05-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人