自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨正的专栏

嵌入式软件开发

  • 博客(158)
  • 资源 (2)
  • 收藏
  • 关注

原创 记录linux环境下搭建本地MQTT服务器实现mqtt的ssl加密通讯

2、使用mqtts/tls加密通信时,server地址需加"ssl://", 例如"ssl://127.0.0.1:8883";使用github中的一个脚本,可以让hostname为localhost、本机ip或127.0.0.1,脚本从。修改mosiquitto.conf,添加证书的路径,加密端口8883(配置端口监听端口默认是1883)4、需要移植openssl库,mqtt源码编译需要链接到openssl中的include和lib。该脚本创建CA文件,生成服务器证书,并使用CA来签名证书。

2024-09-24 18:55:02 1274

原创 STM32F103 ADC采样不准解决方法

问题:使用ADC采样换算的电压与实际测量的电压值有较大偏差。分析:使用STM32CubeMX生成的工程,ADC配置没有对做ADC校准,导致采样值与实际值有较大误差;在HAL_ADC_Start接口之前增加ADC校准接口HAL_ADCEx_Calibration_Start,另外采样周期设长ADC_SAMPLETIME_239CYCLES_5;...

2021-09-13 14:32:10 7226 2

转载 如何区分1位和4位数码管引脚图

在做单片机实验时,经常要用到数码管,包括1位数码管和4位数码管。数码管根据公共引脚性质的不同,又分为共阴极和共阳极数码管。只有了解了数码管的结构和内部接线图,看懂数码管的引脚图,才能正确的连接线路,得出正确的实验结果。那么1位和4位数码管引脚图如何区别呢?  1位数码管  先来看一下1位数码管的原型图。它是用7个LED条排列成一个8字,外加1个LED作为小数点。从外面...

2019-04-04 10:55:13 18789

转载 中国部署LoRaWAN最佳频段

                         中国部署LoRaWAN最佳频段LoRaWAN以其明显的优势:大容量、全球统一的标准、免费频段、低成本和灵活性,和WiFi一样,成为“私有物联网”的首要选择(NB-IoT,和GPRS一样...

2019-03-13 09:59:47 6061 1

原创 NFS作为根文件系统启动的几个关键点

第一 在uboot中修改bootargs的内容 1、bootargs的参数是传入内核的,例如:bootargs=noinitrd console=ttyS0,115200 init=/linuxrc mem=64M root=/dev/nfs nfsroot=192.168.0.107:/home/yangzheng/nfs/rootfs ip=192.168.0.103:192.168.0.10

2017-10-22 10:41:19 879 1

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-10-22 10:35:34 346

原创 linux 下websocket server demo例程

websocket的协议,原理参考文档:http://www.2cto.com/kf/201210/161006.html。主要步骤:1、创建socket套接字进行监听客户端;  2、握手,当与客户端建立tcp连接后,客户端会发送websocket请求,此时,服务器端需要提取客户端在websocket请求中包含一个握手的唯一Key,服务端在拿到这个Key后,需要加入一个GUID,然

2017-08-22 17:28:50 8150 1

原创 解决“vim中文显示乱码”的问题

编辑~/.vimrc文件,加上如下几行:  set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936   set termencoding=utf-8   set encoding=utf-8

2017-03-31 16:04:06 945

原创 ubuntu下ls目录文件不显示颜色解决方法

sudo echo 'alias ls="ls --color=auto" ' >> /etc/bash.bashrc

2017-03-29 12:02:22 7111 1

原创 解决ubuntu 启动ssh服务

现象:esp8266@esp8266-VirtualBox:~$ sudo service ssh restartssh: unrecognized service解决方法:step1:sudo apt-get updatestep2:sudo apt-get install openssh-serverstep3:sudo service ssh

2017-03-28 11:16:48 8884

原创 Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

在移植Linux系统到arm上时遇到“Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004”的问题,这个问题网上有各种解决办法,但是,都不能够解决我的问题。我的解决办法是:把根目录里面的lib全部删除,重新再重编译链下面拷贝相应库文件。解决过程:1、删除rootfs下的lib;2、

2017-03-23 14:18:53 11664 1

转载 IT职场人生系列

专家与杂家专家与杂家之争由来已久。挺专家者说:只有专一,才能学透学精;那些泛泛之辈,只能学到些皮毛,终究不能有所成就。挺杂家者说:只有广泛,才能目光开阔;某些人天天钻牛角尖,最后学成榆木疙瘩。招聘的时候也是。有人号称精通七八种语言,参与过76个项目(在一个真实简历中看到的,不过不是来我们这应聘的;按当时的速度估计,他现在应该写参与150~200多个项目左右了

2016-12-25 15:54:00 581

原创 如何在uboot中添加驱动程序

Author:杨正date:2016.9.21目的在u-boot中添加驱动程序。 详细举例介绍在uboot中操作寄存器,实现对gpio及外围设备的控制有两种方法,一种是直接在arch/arm/lib/board.c中添加对寄存器的操作代码,如:#define muxctrl_reg5 0x200f0014#define GPIO6_DIR 0x201a0400

2016-10-14 17:36:57 9720

原创 hi3516d打开ttyAMA2 ttyAMA3的方法

修改/arch/arm/match-hi3516a/core.c,添加如下代码:131 HIL_AMBA_DEVICE(uart0, "uart:0", UART0, NULL);132 HIL_AMBA_DEVICE(uart1, "uart:1", UART1, NULL);133 HIL_AMBA_DEVICE(uart2, "uart:2", UART2,

2016-10-14 16:32:22 4827

转载 函数参数的传递问题(指针的指针)

程序1:void myMalloc(char *s) //我想在函数中分配内存,再返回{  s=(char *) malloc(100);}void main(){  char *p=NULL;  myMalloc(p); //这里的p实际还是NULL,p的值没有改变,为什么?  if(p) free(p);}

2016-09-09 14:57:26 1456

转载 无线路由单天线与多天线的区别

• 对于最高支持11g协议的老式无线路由器,一根天线最高支持54Mbps; • 对于最高支持11n协议的半老不新无线路由器,一根天线最高支持150Mbps; • 对于最高支持11ac协议的新式无线路由器,一根天线最高支持433Mbps;如果听到一个路由器“号称”能达到多高的速率,就可以很快的知道它大致有几根天线。目前市场上的无线路由器主要有以下几种:• “号称”54Mbps、15

2016-07-21 16:10:07 11325 2

原创 在linux中用C语言实现ping命令

运用C语言编写模拟常用网络命令ping命令实现一个基于linux原始套接字和ICMP协议的ping程序。该程序能用于检测主机或路由器工作是否正常。程序中主要的函数void alarm_handler(int); /*SIGALRM处理程序*/void int_handler(int); /*SIGINT处理程序*/void set_sighandler(); /*设

2016-01-27 13:57:17 10205 8

原创 在ARM Linux下使用GPIO模拟SPI时序详解

Author:杨正  Data:2016.1.1  Mail:yz2012ww@gmail.com一、       概述SPI是英文SerialPeripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI是一种高速、全双工、同步通信总线,标准的SPI有4个引脚,常用于单片机和EEPROM、FLASH、实时时钟、数字信号处理等器件的通信。SPI通信原理要比I2

2016-01-06 18:44:08 19232 1

转载 fork产生子进程利用pipe管道通信

转载链接:http://hi.baidu.com/hj11yc/item/9a2ea30cca773077bfe97efc注:加了一点内容进程间通信 fork pipe pie_t 等用法(管道机制 通信)每个进程各自有不同的用户地址空间,任 何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲 区,进程1把数据从用户空间拷到

2015-12-16 10:29:20 2493

转载 linux中fork()函数详解

一、fork入门知识     一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来

2015-12-16 09:32:18 1061

翻译 xxx.tar.xz文件如何解压

XZ压缩最新压缩率之王xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。之前xz使用一直很少,所以几乎没有什么提起。我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压

2015-11-13 10:56:45 1788

转载 STRTOK函数和STRTOK_R函数

注:本文转载自博客园,感谢作者整理!1.一个应用实例网络上一个比较经典的例子是将字符串切分,存入结构体中。如,现有结构体typedef struct person{     char name[25];     char sex[10];     char age[4]; }Person;需从字符串 char buffer[INFO_MAX_SZ]="Fred ma

2015-10-28 09:59:58 566

原创 在Linux下调试信息输出自定义颜色字体

Date:2015.5.15  Author:杨正  QQ:1209758756yz2012ww@gmail.com         在Linux环境下进行软件开发时,调试是经常做的事情,为了让调试信息更加清晰方便,这里讲解如何输出带有自定义的颜色字体,比如可以自定义输出颜色为红,绿,蓝等,与其他打印信息区分开来。       首先讲解在shell脚本中的应用:在she

2015-05-18 13:58:04 2395

原创 nRF51822使用Timer制作4路PWM波详解

Date:2015.5.8 Author:杨正  QQ:1209758756 一、            pwm简介PWM英文名叫Pulse Width Modulation,中文名叫脉宽调制。那它到底是什么呢?其是它是由定时器产生的,比普通的定时器多了一个比较寄存器。PWM里面有一个词叫占空比,即一个周期内,高电平持续时间与周期的比值。如下图:占空比(dutycycl

2015-05-08 17:03:09 6715

原创 如何向busybox添加自己的命令

在做嵌入式开的时候,busybox无疑是非常好用的命令集,所以很多时候都喜欢把busybox移植到我们的系统里面,移植过程网上也有很多相关的文档,今天这篇文档主要介绍如何在busybox中添加我们自己的命令,过程如下:添加一个很简单的命令——hello_busybox,输出“Hello Husybox!”。busybox解压出来有很多目录,每个目录几乎是一类命令,比如网络,shell等等。我就

2015-04-14 19:20:56 4594

原创 蓝牙设备端只能与指定APP连接

设备端与特定APP相连,即设备只能与自己研发的APP相连,设备与其它被人所开发的APP不能相连。那么,这样的功能有什么意义,它又是如何实现的呢? 原理:在应用层做一个连接密码,这个密码可以是数字或者是字母或者是两者结合,比如:1234等。在蓝牙连接上时开启一个定时器,如果在定时器超时之前,收到APP发来约定好的连接密码,那么终止定时器,继续保持连接状态,如果定时器超时时还没有收到APP发来

2015-03-02 20:17:02 11769 2

转载 uboot移植之命令烧写uboot,zImage.img,root .

/**************uboot下用命令下载uboot,内核和文件系统********************/    /* 先将内核zImage用mkimage转换成uImage(叫zIMage.img) mkimage 工具是uboot提供,在uboot源码的tools/ 在内核源码的arch/arm/boot/下执行如下命令 */  mkimage -n 'tekkaman' -A 

2014-11-20 17:03:19 3298

转载 Linux内核zImage\Image\uImage之区别及uImage的制作

一、Image、zImage和uImage的区别内核编译(make)之后会生成两个文件,一个是Image,一个是zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。uImage是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0

2014-11-20 11:05:55 2221

转载 uboot bootargs bootcmd bootm

u-boot的环境参数中有两个和内核启动相关的,它们是bootcmd和bootargs1.u-boot中和环境参数有关的命令       printenv:打印当前环境参数       setenv param_name "value":设置环境参数       saveenv:保存环境参数到FLASH2.bootcmd:这个参数包含了一些命令,

2014-11-18 09:35:03 1110

原创 在uboot里面添加环境变量使用run来执行

在uboot里面添加环境变量使用run来执行Author:杨正  Date:2014.11.11   Email:yz2012ww@gmail.com QQ:1209758756          在移植uboot的时候,可以在uboot里面添加定义一些自己的环境变量,这些环境变量可以大大提高以后的工作效率,比如我在uboot里面添加如下环境变量:bbl=sf probe 0;

2014-11-12 08:42:14 5693

原创 Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义

$# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

2014-11-10 09:07:38 1001

原创 UIP协议栈移植到u-boot详解

UIP协议栈移植到u-boot详解         Author: 杨正  date:2014.11.5  Email:y2012ww@gmail.com QQ: 12097587561、uip简介       Uip网络是一个简单好用的嵌入式协议栈,易于移植且消耗的内存空间较少,应用于很多嵌入式产品。uIP 协议栈去掉了完整的TCP/IP系统中不常用的功能,简化了通讯流程,只保留

2014-11-06 16:04:25 8377 2

转载 Linux下patch的制作和应用

转自:http://blog.chinaunix.net/u3/100239/showart_1984963.html首先介绍一下diff和patch。在这里不会把man在线文档上所有的选项都介绍一下,那样也没有必要。在99%的时间里,我们只会用到几个选项。所以必须学会这几个选项。1、diff    --------------------    NAME         

2014-11-03 15:29:23 668

原创 致逝去的大学时光

不知不觉已经走出学校的大门也有两个多月了,时间过得可真快,似乎昨天还在学校和那几个家伙一起打球,而如今已经在公司上了两个月多的班。这两个月每一天都有很多工作要做,好不容易今天抽出一点时间来写这篇日志,文采不好,让读者见笑了。         记得在高中的时候老师常常跟我们说你们现在要好好努力,将来考上大学就可以好好玩了。当时半信半疑的开始努力了,虽然高考成绩不理想,但是还是来到了大武汉这个城市

2014-09-22 19:12:37 933

转载 很全面的.vimrc配置

"=========================================================================" DesCRiption: 适合自己使用的vimrc文件,for Linux/Windows, GUI/Console " " Last Change: 2010年08月02日 15时13分 " " Version: 1.80 

2014-09-12 15:01:51 3174

原创 解决linux重启之后eth0变成eth1,eth2……的问题

解决办法:将/etc/udev/rules.d/70-persistent-net.rules文件删除,重启后,会自动生成70-persistent-net.rules文件,这个时候ifconfig -

2014-09-12 14:45:28 4125 1

转载 I2C总线协议解析

1、基本概念      主机            初始化发送,产生时钟信号和终止发送的器件      从机            被主机寻址的器件      发送器        发送数据到总线的器件      接收器        从总线接收数据的器件      多主机        同时有多于一个主机尝试控制总线 但不破坏报文      仲裁 

2014-09-07 11:05:27 1173

转载 I2C总线协议学习笔记

一. I2C协议技术性能:    工作速率有100K和400K两种;    支持多机通讯;    支持多主控模块,但同一时刻只允许有一个主控;         由数据线SDA和时钟SCL构成的串行总线;    每个电路和模块都有唯一的地址;                       每个器件可以使用独立电源二. I2C协议基本工作原理:     以启动信号ST

2014-09-07 09:29:30 851

转载 linux下如何解压RAR文件

在WINDOWS平台下压缩成的RAR文件,如何在LINUX平台下进行解压,linux平台默认是不支持RAR文件的解压,需要安装linux版本的RAR压缩软件,下载地址为:http://www.rarlab.com/download.htm 目前最新版本是 4.1.1 ,下载之后进行解压之后,进入rar目录,运行make指令进行安装,安装过程如下:[root@hbserver rar]# mak

2014-08-28 17:16:33 2692

转载 颜色空间之YCbCr

YCbCr是DVD、摄像机、数字电视等消费类视频产品中,常用的色彩编码方案。YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。YCbCr其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。人的肉眼对视频的Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化。    主要的子采样格式有YCbCr 4:2:0、YCbCr 4:2:2 和

2014-08-23 17:28:13 2769 1

浅谈gui框架

描述gui框架,认识gui,是gui初学者难得一见的好文档,文档主要讲解了整个gui的设计流程,以及一些思路

2014-08-25

空空如也

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

TA关注的人

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