自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BACnet协议详解——Object篇之device object

BACnet协议中关于Object的说明

2023-03-21 22:47:35 655 2

原创 BACnet协议详解————MS/TP物理层,数据链路层和网络层

BACnet协议详解,MS/TP详解,网络层说明

2023-02-25 17:18:13 3354

原创 BACnet协议详解——应用层说明二

BACnet协议详解,应用层说明

2023-02-23 20:30:00 942

原创 BACnet协议详解——应用层说明一

BACnet应用层协议说明

2023-01-20 09:38:30 1841 1

原创 BACnet协议详解——初识BACnet架构

BACnet协议架构简介

2022-12-30 15:57:36 2396 1

原创 BACnet协议详解——序

BACnet协议详解的序言

2022-12-30 14:01:26 1081 3

原创 linux内核完全注释v3.0——第6章

6.1 总体功能BIOS执行某些系统的检测,并在物理地址0处开始初始化中断向量BIOS启动设备的第一个扇区将bootsect.s读入内存绝对地址0x7C00处,并跳转到这个地方bootsect.s程序开始执行,并将自己移动到0x90000位置处,并把setup.s代码读入到内存0x90200中,同时把system模块被读入到从内存地址0x10000开始处setup.s函数执行,将sy...

2020-05-09 09:34:06 403

原创 linux内核完全注释v3.0——第5章

5.1 Linux内核模式层次式的为内核模式整体式的单内核模式Linux 0.11内核,采用但内核模式优点:内核代码结构紧凑、执行速度快缺点:层次结构性不强流程:应用主程序使用指定的参数值执行系统调用指令(int x80),使CPU从用户态(User Mode)切换到核心态(Kernel Mode),然后操作系统根据具体的参数值调用特定的系统调用服务程序,而这些服务程序则根据需要再调...

2020-01-17 11:28:04 1002

原创 AT&T下汇编语法

movmovlmov long : 32bitsmovwmov word : 16bitsmovbmov byte : 8bitslea取有效地址(偏移量)lea ignore_int, %edx 表示把ignore_int处的有效地址传给edx(note:是去ignore_int处的偏移量,而不是ignore_int处存储的内容)push将栈指针sp移动,然后将数据保...

2020-01-14 17:45:01 743 1

原创 树莓派4串口配置及使用

文章目录改变串口的功能使能串口重启树莓派安装minicom使用minicom通信改变串口的功能sudo nano /boot/cmdline.txt删除 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200使能串口sudo nano /boot/config.txt最后增加下面两句话:dtoverlay=pi3-miniuart-btenabl...

2019-12-19 16:44:53 8524 6

原创 CSDN-markdown编辑器使用

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-12-12 14:10:42 118 1

原创 mqtt mosquitto桥接简单设置及实现

桥接设置linux下,mosquitto的配置文为/etc/mosquitto/mosquitto.conf文件,此文件的修改需要root权限,因此,我一般是将这个文件cp到home文件下的某个文件中进行桥接配置的修改。将mosquitto.conf文件进行copy;将mosquitto.conf文件最后添加如下代码connection testaddress xxx.xxx.xxx...

2019-12-05 16:24:53 820

原创 linux mosquitto安装及使用

安装指令如下sudo apt-get updatesudo apt-get install mosquittosudo apt-get install libmosquitto-devsudo apt-get install mosquitto-clients测试方法通过mosquitto -p 5678 -v 指令可以在本地建立一个端口号为5678的server服务;通过if...

2019-12-05 15:52:43 937

转载 Python自动生成代码 - 通过tkinter图形化操作并生成代码框架

转自:https://blog.csdn.net/HowieXue/article/details/100917348

2019-12-05 14:58:26 843

原创 UNIX环境高级编程——第六章 系统数据文件和信息

6.1 口令文件在给出用户登录名或数值用户ID后,这两个函数就能查看相关记录。#include <sys/types.h>#include <pwd.h>struct passwd *getpwuid(uid_t uid);struct passwd *getpwnam(const char *name);struct passwd *getpwent(void...

2019-11-16 19:43:25 119

原创 UNIX环境高级编程——第五章 标准I/O库

5.1 引言5.2 流与FILE对象5.3 标准输入、标准输出和标准出错这三个标准I/O流通过预定义文件指针stdin,stdout和stderr加以引用。这三个文件指针同样定义在头文件<stdio.h>5.4 缓存缓存类型缓存说明全缓存当填满标准I/O缓存后才进行实际I/O操作(一般用于放在磁盘上的文件)行缓存当输入和输出中遇到新行符时,标...

2019-11-15 21:25:19 131

原创 UNIX环境高级编程——第四章

4.2 stat、fstat和lstat函数#include <sys/types.h>#include <sys/stat.h>int stat(const char *pathname, struct stat * buf);int fstat(int filedes, struct stat *buf);int lstat(const char *path...

2019-11-15 16:33:16 132

原创 UNIX环境高级编程——第三章

3.2 文件描述符UNIX shell使文件描述符0与进程的标准输入相结合,文件描述符 1与标准输出相结合,文件描述符2与标准出错输出相结合。这是 UNIX shell以及很多应用程序使用的惯例,而与内核无关** 在P O S I X . 1应用程序中,幻数 0、 1、 2应被代换成符号常数 S T D I N _ F I L E N O、 S T D O U T _F I L E N O...

2019-11-13 11:53:59 171

原创 error: 'CRTSCTS' undeclared (first use in this function)

在变现树莓派的串口驱动的时候,在linux-armv6的docker环境下,用cmake生成makefile,编译程序的时候,出现CRTSCTS undeclared的错误,那么可以将CMakeLists.txt里面的set(CMAKE_C_FLAGS “-std=c99”)改为set(CMAKE_C_FLAGS “-std=gnu99”)...

2019-10-24 14:05:41 4223

转载 Linux 下c获取当前时间(精确到秒和毫秒或者微秒)

转载:https://blog.csdn.net/deyuzhi/article/details/51814934获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 sys/time.h 。函数说明int gettimeofday (struct timeval * tv, struct timezone * tz)1、返回值:该函数成功时返...

2019-10-22 13:43:54 1054

原创 dw1000 IC DESCRIPTION

DW1000组成receivertransmittervoltage monitortemperature monitorreceiver组成RF font endlow-noise amplifier调制解调transmitter组成由模拟脉冲产生器将数字信号转换成模拟信号模拟信号由双平衡混频器 up-convertedup-converted的信号放在由合成器...

2019-09-29 11:33:02 247

原创 DW1000 datasheet FUNCTIONAL DESCRIPTION

Supported Bit Rates and Pulse Repetition Frequencies(PRF)一般情况下,低数据速率将会增加接收灵敏度、连接边缘区和更长测距,但是由于每一帧数据长度的增加也会导致每一帧在空中传输时间增加16MHz PRF比64Mhz会降低发送功耗无论是16M还是64M传输数据,preamble code不同不能避免干扰,因为不同的preamble cod...

2019-09-29 11:32:48 941

原创 C++学习笔记之虚函数

1.联编是计算机程序彼此关联的过程,这个过程需要确定函数调用和执行函数调用的代码之间的映射关系,按照联编的不同阶段,可以分为静态联编和动态联编;2.静态联编:就是在程序运行之间执行的早期联编,那么在程序运行时就会按照静态联编的结果进行执行,这也就是为什么一直执行的时父类的func,也就是说如果父类和子类都有同一个函数的情况下,而且这个函数不是虚函数的话,那么无论是定义的子类还是父类的变量,去执行...

2019-09-29 11:31:48 78

原创 jlink远程下载笔记

领导之前让我找jlink远程下载的资料,我找了两个blog地址如下https://www.cnblogs.com/bh4lm/p/6733232.htmlhttps://www.yiboard.com/thread-663-1-1.html然后自己试着调通了,就觉得没啥东西,然后就抛到脑后了。一两个月后的今天,领导让我给客户远程升级,我找到书签里面的两个blog,看完我就懵逼了。好记性不如...

2019-09-29 11:30:25 678

原创 数组,数组指针,指针数组

数组多维数组实际上也是一维指针;数组a【2】,&a获取的是数组的地址,&a【0】获取的是a【0】的地址,两个地址虽然一样,但+1之后的结果不一样;数组a【2】的首地址的地址是无法获取的,那么要获取的话,只能通过定义指针数组来获取;此图片来自https://www.cnblogs.com/qingergege/p/6917913.html数组指针与指针数组cha...

2019-09-29 11:30:07 68

原创 程序编译流程笔记

1.预处理:进行语法验证等;2.编译 .c文件生成.s文件(汇编文件)3.汇编文件生成.o文件(2进制文件)4链接:将多个.o文件合并成一个可执行文件

2019-09-29 11:29:38 74

原创 c语言笔记

#include &lt;stdio.h&gt;typedef struct{char a[2];int b[3];}test_str;int main(int argc, char *argv[]){test_str *pTest;test_str test[3];pTest = test+1;printf("%d,%d,%d,%d,%d\n",pTest,test,size...

2019-09-29 11:29:17 79

原创 C语言——字符串

字符串是以空字符(\0)结尾的char类型数组用双引号括起来的内容称为字符串字面量,也叫作字符串常量,双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串储存在内存中在指定数组大小时,要确保数组的元素个数至少比字符串长度多1(为了容纳空字符),所有未被使用的元素都被自动初始化为0(这里的0是指char形式的空字符;不是数字字符0)。建议在把指针初始化为字符串字面量时使用const限定...

2019-09-29 11:26:55 185

原创 MDK编译等级

Optimization level -O0-O0禁用所有优化。这个优化级别是默认的。使用-O0可以加快编译和构建时间,但是生成的代码比其他优化级别要满。与其他优化级别相比,-O0的代码大小和堆栈使用率明显要高。生成的代码与源代码密切相关,但生成的代码要多得多,包括死代码。Optimization level -O1-O1支持编译器中的核心优化。因为这个级别比-O0提供了更好的代码质量,因...

2019-09-29 11:25:50 1713

原创 STM32 HAL库IDLE检查DMA接收完成程序中ORE问题

STM32 HAL库IDLE检查DMA接收完成程序中ORE问题HAL库IDLE检查DMA接收完成程序流程说明ORE产生原因ORE消除办法(未验证)HAL库IDLE检查DMA接收完成程序流程说明1.配置串口,配置DMA接收通道(我只用DMA接收),memInc一定要使能;2.配置完之后编写中断回调函数,idle回调函数完全需要自己写,因为HAL库中完全没有这部分;3.编写开启DMA接收的函数...

2019-07-23 11:58:43 1712 1

转载 mdk c 语言 __attribute__

__attribute__用法attribute((used)) 向编译器说明这段代码有用,即使在没有用到的情况下编译器也不会警告!attribute((unused))向函数或变量可能不使用,这个属性可以避免编译器产生警告信息!attribute((aligned(n))) 作用是在给某对象分配地址空间时,将其存放的地址按照n字节对齐,这里n可取2的幂次方。字节对齐的作用不仅是便于CPU快...

2019-07-01 09:08:04 1738

原创 C语言——逗号运算符

它保证了被分隔的表达式从左至右求值整个逗号表达式的值是右侧项的值例如:x = (y = 3, (z = ++y + 2) + 5);程序执行的效果就是,y被赋值为3,然后y++变成4,加2得到6,赋值给z,然后6加5得到11,赋值给x,那么x最终等于11...

2019-05-26 22:00:18 223

原创 c primer学习笔记——指针与多维数组

多维数组a[2][2],a = *a = a[0],都是首地址的值;但**a = a[0][0]是为什么呢?a的值不是与*a的值相等吗?那如果说a是个二级指针,它存放的就是a[0][0]的地址(&a[0][0]=*a=a[0]=*(a+0))的地址,而a[0][0]的地址又等于a[0][0]的地址的地址,也就是在一个屋子里面既可以找到a[0][0]又可以找到*a或者说a[0],那么是不是...

2019-05-26 21:51:00 125

原创 arm指令__attribute__((at(addr)))的应用

假如程序设定的起始地址为0,const uint32_t VALID_DATA __attribute__ ((at(0x00010000))) = 0xAABBCCDD;那么你生成的程序的bin文件或者hex文件的大小至少要大于0x10000,并且你从flash的0x2000这个位置下载bin文件,那么你就会在flash的0x12000这个位置读到0xAABBCCDD;至于const的地址小于程...

2019-05-21 16:08:53 4470

原创 代码大全学习笔记——第十七章不常见的控制结构

17.1 子程序中的多处返回如果能增强可读性,那么就使用return用防卫子句(早返回或早退出)来简化复杂的错误处理:从审美的角度来说,把子程序的主体缩在4条if语句里面很难看,在这种情况下,如果先检查错误情况,用这些代码来为正常的执行路径清路,那么代码的布局有事可能变得更清楚,如果错误需要进行处理,那么可以为不同的错误,添加不同的返回值,从而进行不同的错误处理减少每个子程序中return...

2019-05-16 14:43:33 229

原创 代码大全学习笔记————第十六章控制循环

16.1 选择循环的种类计数循环执行的次数是一定的,可能是针对每位雇员执行一次连续求职的循环预先并不知道将要执行多少次,它会在每次迭代时检查是否应该结束无限循环一旦启动就会一直执行下去迭代器循环对容器类里面的每个元素执行一次操作什么时候使用while循环检测位于循环的开始:用while循环检测位于循环的结尾:至少要执行一次,用do-while循环什么时候用带退出的循环C、C+...

2019-05-16 13:29:59 275

原创 C primer学习笔记--const

const数组名不能作为实参传递给非const参数函数把const数据或非const数据的地址初始化为指向const的指针或为其赋值是合法的,然而只能把非const数据的地址赋给普通指针函数参数用const修饰,并不是要求实参必须是const,而是该函数在处理实参数据时将其视为常量,不可修改像函数处理指针的时候,如果不能修改指针指向的数据,那么应该这样定义参数const int *p或in...

2019-05-15 22:30:10 251

原创 代码大全学习笔记————第十五章用条件语句

15.1 if语句简单if-then语句首先写正常代码路径,再处理不常见情况确保对于等量的分支是正确的:即注意off-by-one的错误把正常情况的处理放在if后面而不要放在else后面:间隔放置正确和错误处理会影响代码的可读性让if字句后面跟随一个有意义的语句考虑else字句:经典分析发现,有5到8成的if语句都应该配有一个else字句,因此可以在else中写一个空语句,来表明el...

2019-05-15 11:49:33 188

原创 代码大全学习笔记——第十四章组织直线型代码

14.1 必须有明确顺序的语句

2019-05-15 11:12:58 216

原创 代码大全学习笔记——第十三章不常见的数据类型2

13.3 全局数据大多数有经验的程序员已经得出结论:使用全局数据的风险比使用局部数据大与全局数据有关的常见问题无意间修改了全局数据与全局数据有关的奇异的和令人激动的别名问题:这是vb程序的一个问题,但我觉得对于C程序,不会出现这个问题,希望有某个大神给予指正与全局数据有关的代码重入问题:由于多线程应用的问题,全局数据会存在共享等问题全局数据阻碍代码重用与全局数据有关的非确定的初始化...

2019-05-09 14:15:39 136

空空如也

空空如也

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

TA关注的人

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