- 博客(24)
- 资源 (4)
- 收藏
- 关注
转载 Modbus功能码/异常功能码/错误码
Modbus协议主要构成是地址码/标识码,功能码,寄存器地址,数据报文等内容。由于modbus协议是请求/应答通信协议,其其中功能码主要用于表述该数据报文执行的功能,当服务器对客户机进行响应时,它使用功能码域来指示正常响应(无差错)或者异常响应(即出现某种差错),其中的modbus协议的功能码众多其中物理离散量输入和输入寄存器只能有I/O系统提供的数据类型,即只能是由I/O系统改变离散量输入和输入寄存器的数值,而上位机程序不能改变的数据类型,在数据读写上表现为只读,而内部比特或者物理线圈和内部寄存器或物
2021-11-17 13:41:13
5526
原创 关于使用J-Link RTT 打印日志内容不全问题的解决方法
使用J-Link RTT Viewer查看RTT的输出日志,程序全速跑起来后,发现有时候内容打印不全,后面有一分部分内容直接没有了。这是RTT的缓冲区满造成的。我自己的解决方法有如下几种:1、使用软件延时在一下子输出了较多内容时,添加软延时函数,等待缓冲区输出完成。延时时间建议在20ms以上。2、增大缓冲区我一般直接使用通道0作为RTT输出通道。通道0也是RTT组件初始化后,默认初始化的通道。在SEGGER_RTT_Conf.h头文件中可以对通道0的参数进行配置。BUFFER_SIZE_UP宏定义
2021-08-24 14:57:08
2153
2
原创 STM32 JTAG引脚(JTDO、JNTRST、JTDI)作为普通IO口使用注意
STM32 JTAG引脚(JTDO、JNTRST、JTDI)作为普通IO口使用注意最近开发一个项目软件,主控MCU是STM32F103VCT6。其中使用了PA15作为一个SPI的软件片选控制引脚,即用PA15的GPIO功能控制SPI的CS片选。软件开发好调试时发现,CS引脚的电平不受控制。开始以为引脚搞错,可是原理图上清除标识了。后来怀疑硬件线路不通,可是万用表量了也是通的。再后来怀疑芯片坏了,可是换了一块板子,现象仍然是这样。总之反复折腾了个把小时,仍未解决问题。歇了会儿之后,突然想到“PA15
2021-08-23 16:56:19
11786
2
原创 STM32 Alternate functions 与 Additional functions
STM32 Alternate functions 与 Additional functionsSTM32 MCU的IO引脚可以作为GPIO功能(绝大部分IO上电后的默认为该模式),也可以作为Alternate functions(复用功能)和 Additional functions(附加功能、辅助功能)。Alternate functions:Functions selected through GPIOx_AFR registers即需要通过GPIOx_AFR寄存器配置来选择。Addi
2021-06-10 13:40:48
4631
原创 busybox 1.13.3——Makefile:421: *** mixed implicit and normal rules: deprecated syntax
问题描述:busybox 1.13.3 执行make menuconfig命令的时候,提示Makefile:421: *** 混和的隐含和普通规则。 停止等错误,具体错误如下:Makefile:421: *** mixed implicit and normal rules: deprecated syntaxMakefile:1269: *** mixed implicit and n...
2018-09-15 15:06:46
1161
转载 uboot和内核分区的修改
随着内核的更新,内核越来越大,uboot给nand的kernel分区默认是2M的device nand0 , # parts = 4 #: name size offset mask_flags 0: bootloader 0x00040000 0x00000000 ...
2018-09-12 23:34:29
3476
1
转载 linux2.6.32 内核编译 cc1: error: invalid option `abi=aapcs-linux'
编译make zImage时候 出现如下错误:cc1: error: invalid option `abi=aapcs-linux’root@ubuntu:/opt/FriendlyARM/mini2440/linux-2.6.32.2# make zImage scripts/kconfig/conf -s arch/arm/Kconfig CHK include/li...
2018-09-12 23:06:06
459
转载 在新版linux上编译老版本的kernel出现kernel/timeconst.h] Error 255
在使用ubuntu16.4编译Linux-2.6.32内核时出现这样的错误以下是编译错误提示的内容:Can‘t use ‘defined(@array)‘ (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373. /opt/ARM/mini6410/linux/linux-2.6.38/ker...
2018-09-12 23:05:00
1943
转载 makefile——wildcard、notdir、patsubst
1、wildcard : 扩展通配符 2、notdir : 去除路径 3、patsubst :替换通配符例子: 建立一个测试目录,在测试目录下建立一个名为sub的子目录 mkdirtestmkdirtest mkdir test cd test $ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的...
2018-09-12 15:31:16
217
原创 Makefile——常用变量
make的隐含规则数据库中用到了很多变量,有些变量没有定义(例如CFLAGS),有些变量定义了缺省值(例如CC)。 写Makefile时可以重新定义这些变量的值,也可以在缺省值的基础上追加。 以下是一些常用的变量。AR 静态库打包命令的名字,缺省值是ar。ARFLAGS 静态库打包命令的选项,缺省值是rv。AS 汇编器的名字,缺省值是as。ASFLAGS 汇编器的选项,...
2018-09-12 12:01:16
1073
原创 Makefile——变量
Makefile中关于变量的语法规则 1、使用 = 定义的变量为延时赋值型变量,可以把变量的放到后面定义。一个简单的例子:foo = $(bar) bar = Huh? all: @echo $(foo)先说明一下,$(xxx)表示取变量xxx的值。 执行make将会输出 Huh?。当make读到foo = $(bar)时,确定foo 的值是 $(bar),但...
2018-09-12 11:52:18
282
原创 Makefile简介
make命令会自动读取当前目录下的Makefile文件,完成相应的编译步骤。 Makefile由一组规则(Rule)组成,每条规则的格式是:target ... : prerequisites ... command1 command2 例如:main: main.o stack.o maze.o gcc main.o stack.o maze.o -o...
2018-09-11 15:18:00
310
原创 U-Boot增加自定义命令
实验u-boot版本 1.1.61、创建源文件在common目录下创建源文件,文件名称建议以Cmd_xxx.c(Cmd_+小写命令名称)形式命名。2、添加头文件#include <common.h>#include <watchdog.h>#include <command.h>#include <image.h>#i...
2018-09-07 22:50:52
355
原创 U-Boot简介
1 U-Boot简介U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linu...
2018-09-07 17:59:55
178
原创 Makefile文件名称
Makefile的文件名则不一定是Makefile。事实上,执行make命令时,是按照GNUmakefile、makefile、Makefile的顺序找到第一个存在的文件并执行它。建议使用Makefile做文件名。除了GNU make,有些UNIX系统的make命令不是GNU make,不会查找GNUmakefile这个文件名,如果你写的Makefile包含GNU make的特殊语法,可以起...
2018-09-07 16:54:41
1876
1
原创 ARM体系
ARM7 系列ARM7TDMI是ARM7系列中使用最广泛的,它是从最早实现32位地址空间编程模式的ARM6内核发展而来的,并增加了64位乘法指令,支持片上调试、16位Thumb指令集和EmbeddedICE观察点硬件。ARM7TDMI属于ARM v4体系结构,采用冯诺伊曼结构,3级流水处理,平均0.9DMIPs/Mhz性能。不过ARM7TDMI没有MMU(Memory Manageme...
2018-09-07 16:28:13
348
原创 GNU汇编语言结构
主要包括三个常用的段:data 数据段 声明带有初始值的元素bss 数据段 声明使用0或者null初始化的元素text 代码段 包含的指令, 每个汇编程序都必须包含此段使用.section 指令定义段, 如:.section .data.section .bss.section .text起始点:gnu汇编器使用 _start...
2018-09-05 22:08:06
861
原创 ARM汇编指令——.word
汇编指令 .word汇编中的标号通常情况下是用来标明程序段的起始地址。_start:b resetldr pc, _undefined_instructionldr pc, _software_interruptldr pc, _prefetch_abortldr pc, _data_abortldr pc, _not_usedldr ...
2018-09-05 21:32:14
2528
1
原创 STM32F407定时器溢出中断问题——进入中断次数异常
在STM32F407上使用定时器3产生1ms定时中断,timer3初始化代码如下:void TIM3_Int_Init(u16 arr,u16 psc){ TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphCl...
2018-09-05 15:16:46
9725
3
原创 MDK—— Error: L6915E: Library reports error: __use_no_semihosting was requested
环境:MDK V5.14 main程序所在文件为C++文件,函数体外定义类对象时,出现错误,但是在函数体内定义类对象,不会出错。错误:Error: L6915E: Library reports error: __use_no_semihosting was requested, but _ttywrch was referenced解决:串口重定位增加//加入以下代...
2018-09-05 11:52:49
13238
1
原创 STM32——C与C++混合开发
keil中支持混合编译C和C++程序。在混合编译时,需要注意以下几点:1、C文件扩展名必须为.C, C++文件扩展名必须为.CPP, 头文件扩展名必须为.CPP。 如果源文件的扩展名使用错误,会导致编译出错。注:后缀名非必须为.CPP后缀名,也可以.C,但要将文件属性选择为C++文件。 2、C语言的头文件,需要加上如下条件编译及限制代码:#ifdef __cplusplus...
2018-09-04 15:49:47
9465
原创 常见错误——使用CP命令复制目录出现 omitting directory 错误
错误名称omitting directory使用命令cp描述在Linux下使用cp命令拷贝对象时,若出现了“omitting directory”错误,确认CP命令复制的对象是否为非空目 录。在复制非空目录时,需要使用cp -r 目录 ,进行递归复制。...
2018-08-20 11:10:47
1419
原创 正在使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-08-14 15:43:49
147
STC8H_STC8G_STC8A_STC15W_STC15F_系列_原理图库_PCB封装库.zip
2021-10-11
正点原子 探索者 explorer stm32f407 usb hid 鼠标 标准库 非HAL库
2021-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人