自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (4)
  • 收藏
  • 关注

原创 嵌入式软件开发面试重点项

最近准备面试了,梳理一些面试经常考试的细节点,不然每次都要去整理,答案未给出。

2024-03-05 19:28:37 505

转载 IAR里面的icf文件的解析

标题EWARM 5.xx的链接器ILINK及其配置文件.icf转载:link  EWARM 5.xx中的链接器称为ILINK。ILINK可以从ELF/DWARF格式的目标文件中提取代码和数据,并生成可执行映像。在EWARM 4.xx中,基本的代码和数据链接单元是segment,而对于ELF/DWARF格式而言,基本链接单元是section。ILINK根据ILINK Configuration File(*.icf)来分配这些sections。由于XLINK与ILINK是两个完全不同的链接器,所以XCL和

2022-05-14 21:37:46 3065

原创 eclipseMosquitto源码客户端源码解析

一、Eclipse Mosquitto :http://mosquitto.org/源码地址https://github.com/eclipse/mosquitto本文章目前只是对于客户端publish代码的运行逻辑分析,后面会根据代码的阅读慢慢补充上来,其中对结构体的描述篇幅比较大,如果觉得不想看,可直接跳到末尾观看运行流程图,如果文中有错误的地方请指出,我会马上修改二、在阅读此文章的代码解析时,需要先阅读MQTT协议的文档,了解基本的MQTT协议通信框架。三、源码解析3.1主要的源码目录

2022-03-29 15:23:45 5088 3

原创 windows10使用pip安装地方工具出现SyntaxError: invalid syntax

需要是在cmd窗口下安装,不是python窗口下,同时,要到python的安装目录里面找到pip所在的路径下进行安装;1、cmd里面输入f:然后回车跳转到f盘2、跳转到pip的目录下 “自己的安装路劲\python3.7\Scripts”安装 Robot Framworkpip install robotframework...

2022-03-20 23:44:33 1754

原创 ubuntu16.04安装python3.9.8的正确方式

1、安装编译依赖项sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev2、下载源码包下载你需要安装的包,官网下载会特别慢,我是用手机先从官网下载之后传到电脑上的,速度快很多wget https://www.python.org/ftp

2022-03-20 23:24:32 1975

原创 关于迪文屏T5L使用C51编程

一、DWIN公司的屏幕有很多种,一定要先搞清楚自己所用的屏幕内核版本是K600+,T5,还是T5L,不然你会走很多弯路,实在不清楚直接问客服,最好是直接加这个群,有问题直接问,资料没有直接找他拿,迪文屏技术群号:4000189008。基于K600+平台的DGUS屏和基于T5 CPU的DGUSII区别:link.注意这文档并没有讲T5L,我给出这个链接是为了让同学们可以更好的了解迪文屏各个型号。二、我所使用的T5L屏:DMG12800T080_01W。各个字母或者数字的含义以下面的表格来对照三、T

2021-12-28 12:31:07 10823 5

原创 qt5.12.9搭配vs1027出现编译出错的各种坑

记录下这个编译出错的各种坑,目前还没有解决掉。只要是使用mscv编译器就会各种出错。。。使用MinGW编译正常。1、其中qt开机后,直接上来就是???? error: Failed to retrieve MSVC Environment from “F:\Microsoft\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat x86”:这里我百度了各种解决方法,说什么系统环境添加这3个路径,然后删除SQL环

2021-11-16 12:07:16 3935 2

原创 将U16类型转换成u32,float,u8字符串

此文章实在modbus数据格式转换上所做的修改,不仅可以用于保持寄存器,也可以用去其他自定义的u16类型的数组common.h 头文件#ifndef __COMMON_H#define __COMMON_H#include "sys.h"/*浮点数与IEEE754格式转换*/typedef union { float f_Buf; //小数 u8 uc_Buf[4]; //u8,用于存放IEEE

2021-10-18 17:58:40 7579

原创 modbus协议通信时U32如何发送和接收处理的解决办法

前提:有定义了一个float_DtformConver类型,并且我的usSRegHoldBuf保持寄存器数组是全局变量typedef union { float f_Buf; //小数 u8 uc_Buf[4]; //u8,用于存放IEEE754类型的小数 u16 us_Buf[2]; //u16,用于将IEEE754类型的小数存放到保持寄存器中 u32 u_Buf;}float_DtformCo

2021-10-18 17:50:36 1151

原创 modbus协议通信时字符串如何发送和接收处理的解决办法

注意:这里所说的从机发送是指在收到主机要读取保持寄存器的数据的命令时,从机的反馈帧。从机是不能主动发送数据给主机的。。。一、字符串保存到保持寄存器中,以供主机来读取时就可以读取到/*注意:从机这里这样处理字符串后,需要主机在读取从机保持寄存器来显示字符的时候,需要先取保持寄存器的低8位,再取高8位* @file String_To_HoldRegister* @brief 将stm32从机保持寄存器的值取出转换成字符串* @param usHoldRegAddr 从机地址 Rstr 接收

2021-10-18 17:34:21 11803 2

原创 stm32 adc dma多通道采样 数据错位的解决方法

void Read_ADC_All(void){ u8 Number,t; u32 sum; //完成一次DMA传输,数据大小Sample_Times*Channel_Num DMA_SetCurrDataCounter(DMA1_Channel1,Sample_Times*Channel_Num); //设置DMA的传送数量为Sample_Times*Channel_Num DMA_Cmd(DMA1_Channel1,ENABLE);//使能DMA通道1 ADC_Cmd(ADC1,

2021-10-15 12:14:07 7922

原创 KEIL5软件仿真出现*** error 65: access violation at 0xE0001004 : no ‘read‘ permission的解决方法

故障图:解决方法:第一步:设置下面的“Dialog DLL”项为“DARMSTM.DLL”和“TARMSTM.DLL”;parameter项为“-pSTM32F103ZE”,用于设置支持STM32F103ZE的软硬件仿真。第二步:在工程下新建一个debug.ini文件,在文件中写入map 0x40000000, 0x40007FFF read write // APB1map 0x40010000, 0x400157FF read write // APB2map 0x40020000, 0

2021-10-15 12:08:48 6878 3

原创 modbus的03,06,10,14,15,17指令

一、03:读保持寄存器,可读多个或者单个寄存器内容主机请求域名所占字节数可输入的数据内容从机地址1个字节根据从机地址而定功能码1个字节0x03寄存器起始地址2个字节根据所要读取的寄存器位置而定,范围是0x0000 至 0xFFFF寄存器数目2个字节1 至 125(0x7D)CRC校验码2个字节根据前面的数据计算出来从机响应域名所占字节数返回的数据内容从机地址1个字节从机地址功能码1个字节0x0.

2021-09-30 11:12:49 74484 22

原创 Modbus通信时USART中断导致程序死机的原因

https://www.cnblogs.com/citycomputing/p/6139456.html  多个中断在运行的情况下,比如串口中断的任务优先级比较低,当高优先级中断执行频率过高的情况下,串口中断内的数据接收处理就会很慢,导致接收速度和处理速度不一致,从而造成ORE(溢出错误中断)。  在RXNE=1 的的条件下(也就是上次数据还没有读走),串口接收寄存器又接收好了一个字节的数据并准备往RDR 寄存器去转移的时候,会由硬件将ORE( 溢出错误)置1。溢出错误发生后就无脑中断,任务就得不到运行

2021-09-28 15:54:18 4417 2

原创 对于modbus通讯时数据发送顺序的理解

对于modbus通讯时数据发送数据的过程老是记不住,在此记录下来。1、对于数据的每一个bit的发送顺序,这个是由uart所决定。Uart传输数据时先传送字符的低位,后传送字符的高位。即低位(LSB)在前,高位(MSB)在后。2、对于modbus所读写的保持寄存器的每一个Byte的顺序,这个是有modbus通讯协议所决定的,modbus是采用大端模式读写数据。意味着发送多个字节内容时,是先发送数据的高8位。寄存器大小 值16bit 0x1234发送的第一字节为0x12,然后

2021-07-27 17:41:22 7618

原创 对于威纶通MT8071ip与正点原子stm32f103的modbus通信,如何接线和配置

1、威纶通与正点原子stm32f103的接线关系:威纶通的针脚1接stm32f103开发板的RS485的A端口,针脚2接RS485的B端口。2、如果是威纶通接usb转串口485的接口,那就是针脚1接RS485的R+,针脚2接RS485的R-。3、同理可得,如果是stm32f103与usb转串口的485的接头,用电脑当做主机调试程序,则是开发板的A端口接R+,B端口接R-。下面是接线图,我是直接把3者全部都接起来了,方便调试,万一哪个坏了呢。。。把usb转RS485串口线的usb接头插上电脑,即可

2021-06-18 18:05:52 9277 5

转载 Filezilla客户端出现“无法确定拖放操作目标,由于shell未正确安装”解决办法

大家的通用解决办法:https://blog.youkuaiyun.com/p1279030826/article/details/108575103网上大家给出了解决办法,但是我死活进不去D盘,因为我是把FZ装到了D盘,后面我是直接输入D:,它就自动跳转到D:\FZ\FileZilla FTP Client下了,这才可以输入:regsvr32 fzshellext_64.dll。在此做个笔记,防止后面再次入坑。...

2021-06-14 23:50:26 1198 1

转载 keil的错误: Error: Encountered an improper argument 的解决方法

此方法不一定大家都可以用,不过对于我来说还是挺靠谱的。就是把debug时未关闭的断点关掉就可以了1、进入debug2、选择Debug-> Breakpoints3、删除所有断点1、Keil Debug模式下可以通过以下两种方法查看和管理断点。在Command Window中输入BL查看断点,输入BK移除断点,更多命令参考http://www.keil.com/support/man/docs/uv4cl/uv4cl_debug_commands.htm2、通过Debug-> Br

2021-06-04 16:08:48 6394 1

原创 关于正点原子的USART重定向printf出现错误的解决方法

一直以来都是拿正点原子的代码来做学习,一直不喜欢用printf重定向通过串口打印数据,最近又重新要移植文件系统,结果又回去加上了usart这个文件,结果一加上就出错,以前也是出错,当时就把这个文件给去掉了。代码写多了之后,现在发现正点原子的东西也不是那么靠谱。对于这个报错,L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced。在网上找了个解决办法,在此记录下来#if 1

2021-06-01 09:56:13 2057

原创 RS485波形分析

RS485波形分析 对于485波形的分析,只需要一个通道即可测量分析,将接地端接在R-上,探头接在R+上即可。两者对调也是可以的,不过就是读取出来的高、低电平反向而已。 通过modbus助手发送出去的数据:04 03 00 01 00 01 D5 9F。 该数据04表示modbus从机地址,03表示读保持寄存器, 00 01这2个字节表示读取的保持寄存器地址, 第2个00 01 表示读取寄存器的个数, D5 9F 是CRC校验码。这是示波器采集modbus发送的一帧数据所得到的波形图,下面将是对于我

2021-05-27 21:58:00 12638 6

原创 对于波特率传输一个bit的时间的计算

老是记不住波特率传输速度,在此做个笔记一、波特率为9600表示的是串口每秒钟可以传输115200bit,每传输1bit所需时间:1s/9600bit=1000000(us)/9600(bit)=1000/9.6=104.1667us1s/9600bit = 1000000(us)/9600(bit) =1000/9.6 =104.1667us1s/9600bit=1000000(us)/9600(bit)=1000/9.6=104.1667us那么一个字节就是 104.1667∗8=833.3336u

2021-05-26 17:55:15 20848

原创 对于stm32F103芯片读AT24C512得到的数据全是0xFF的解决办法

对于stm32F103芯片读AT24C512得到的数据全是0xFF的解决办法由于项目需要,将正点原子开发板的at24c02换成了at24c512,结果读取数据全是0xFF,经过网上的资料发现是读的驱动程序有一处出现了问题,再此记录下来。未修改驱动代码之前读取结果:只需要将发送高地址后的**IIC_Wait_Ack();**注释即可u8 AT24CXX_ReadOneByte(u16 ReadAddr){ u8 temp=0;

2021-05-22 10:23:05 3601 2

原创 modbus协议通信时浮点数如何发送和接收处理的解决办法

modbus协议通信时浮点数如何发送和接收处理的解决办法  在本次做项目的时候,发现需要威纶通屏幕与stm32芯片采用modbus通信,很多时候需要处理float小数。最开始一直在纠结大小端的问题,坑了一天,理出了下面的解决办法。  注意:主机发送给从机的小数是以32位的形式发送的,所以会占用2个保持寄存器。并且本次项目的威纶通屏幕作为主机时,是以小端形式发送数据,与stm32f103芯片一致,此处大小端问题我不在详细说明(主要是自己太菜了,太懒了,画图来说明很耽误时间)一、如何将保持寄存器中存放的

2021-04-07 11:11:04 22707 2

原创 NPN与PNP三极管

NPN与PNP三极管B—基极,E—发射极,C—集电极一、PNP型三极管PNP型三极管 是用E—B的电流(IB)控制E—C的电流(IC),E极电位最高,且正常放大时通常C极电位最低,即VC<VB<VE                PNP型三极管驱动继电器电路图当输入为0V时,三极管饱和,从而使继电器线圈有相当的电流流过,继电器吸合;相反,当输入为+VCC时,三极管截止,继电器释放二、NPN型三极管NPN型:B—E的电流(IB)控制C—E的电流(IC),E极电位最低,且正常

2021-03-10 14:53:16 10042

转载 什么是rs232?

转载:https://www.usr.cn/News/1626.html什么是RS232协议?  RS232协议是一种流行的串行接口,用于将计算机连接到诸如串口服务器之类的联网设备。我们将了解用于实现RS232的串口引脚以及有关该协议的一些其他参考信息。  RS232协议使用不同于标准5V的信号电平传输电线数据,以最大程度地减少信号干扰。它以恒定速率执行异步传输,该速率与起始脉冲信号的电平同步。最长20米的距离是使用RS232接口进行可靠数据传输的极限。RS232代表什么?  数据传输标准是由电子

2021-03-08 19:39:55 25827 3

转载 rs422/rs485通信接口原理图

RS232接口是一种用于近距离(最大30-60米)、慢速度、点对点通讯的通讯协议,在RS232中一个信号只用到一条信号线,采取与地电压参考的方式,因而在长距离传输后,发送端和接收端地电压有出入,容易造成通讯出错或速度降低。本文转载地址:http://www.eepw.com.cn/article/201605/291509.htmRS485/422接口采用不同的方式:每个信号都采用双绞线(两根信号线)传送,两条线间的电压差用于表示数字信号。例如把双绞线中的一根标为 A(正),另一根标为B(负),当A为正

2021-02-03 16:44:34 57961 9

原创 关于stm32移植FreeRTOS后编译出现内存不足的原因

今天在学习移植freeRTOS的时候,出现了一大推内存不足的错误:linking……\OBJ\TEST.axf: Error: L6406E: No space in execution regions with .ANY selector matching heap_4.o(.bss).…\OBJ\TEST.axf: Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f10x_h

2021-01-11 16:27:35 7176 1

原创 关于typedef函数指针的用法和理解

关于typedef函数指针的用法和理解 在此记录下所理解的和具体用法,以防忘记了又重复找资料。。。属于找到资料后的总结,如果有错误的理解,还望提出1、什么是函数指针如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。函数指针的定...

2020-12-21 20:37:51 1303

转载 STM32存储器映射

**STM32存储器映射**1、Cortex-M3存储器映射CM3的地址空间有4G,但它只对这4G空间作了预先的定义,把4G空间分成8个块,每块大小为512M,并指出各段该分给哪些设备。具体的实现由芯片厂商决定,厂商可以设计出具有自己特色的产品。下图是CM3的存储器映射图(来自CM3权威指南)。1.1、 stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不...

2020-12-10 12:01:57 3195

转载 基本分页存储管理(转)

注:转载的大佬的文章,并不是自己所写。作者:HRADPX链接:https://www.jianshu.com/p/ee2d0b912d05来源:简书著作权归作者所有基本分页存储管理前言   阅读前请先阅读内存管理基础。从本文开始就介绍不连续分配的几种方式,本文主要介绍基本分页存储管理。 连续分配:为用户进程分配的必须是一个连续的内存空间。非连续分配:为用户进程分配的是一些分散的内存空间。1 将连续分配改造成非连续分配版本   假设进程A的大小为23MB,但是每个分区的大小只有10MB

2020-08-21 11:12:47 1303

Sniffer抓包工具

Sniffer抓包工具

2023-12-06

STM32系列 Keil MDK pack包

注:由于上传大小限制,包提供链接通过百度云下载。 Keil.STM32F0xx_DFP.2.0.0.pack Keil.STM32F1xx_DFP.2.2.0.pack Keil.STM32F4xx_DFP.2.13.0.pack Keil.STM32F7xx_DFP.2.10.0.pack

2020-09-23

sourceinsight 的颜色字体配置文件

sourceinsight 的颜色字体配置文件 导入就可以用 步骤:1打开sourceinsight,2点击Options,3点击Options下的Load Configuration,4导入字体配置文件GLOBAL.CF3

2020-09-23

protues仿真DS1302+LCD1602显示实验

这是我以前做的一个实验,用protues仿真,DS1302读取时间,LCD1602显示出读取的时间。 附件带源文件和仿真工程。

2020-09-23

STM32硬件SPI驱动TFTLCD Proteus仿真实现

最近经理通知要做项目了,让我选型一个LCD开始试着做下。这是我用仿真实现的一个smt32的硬件SPI1来驱动的ST7735R,难度挺小的,因为大部分的代码LCD的厂商已经给我们提供了,我们主要修改成硬件SPI来驱动就好了。 此次仿真上面有2个问题,不知道是代码的问题还是仿真图上的问题。第一个问题是仿真运行时有时会出通信数据传输问题,导致指令越界仿真报警,这个可能是SPI不稳定导致的;第二个问题是在改用SPI2或者SPI3来驱动没有任何反应,猜测是代码时钟没开对或者仿真图上面还要加上具体晶振。 代码工程和仿真工程都已压缩打包,可放心下载。。。

2020-09-23

空空如也

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

TA关注的人

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