- 博客(75)
- 资源 (6)
- 收藏
- 关注
原创 声光调制器 | AOTF
声光调制是一种外调制技术,通常把控制激光束强度变化的声光器件称作声光调制器。声光调制技术比光源的直接调制技术有高得多的调制频率;与电光调制技术相比,它有更高的消光比(一般大于1000:1),更低的驱动功率,更优良的温度稳定性和更好的光点质量以及低的价格;与机械调制方式相比,它有更小的体积、重量和更好的输出波形。 其工作原理简述如下: 声光调制器件由声光介质和压电换能器构成。当驱动源的某种特定载波频率驱动换能器时,换能器即产生同一频率的超声波并传入声光介质,在介质内形成折射率...
2022-04-09 09:58:52
2697
原创 推挽输出和开漏输出详解
序言: 平时,写程序的时候总遇IO口模式的端口配置。但是从来没有仔细研究过具体到底是什么含义。作为一名嵌入式工程师应该是不合格的,现在把端口定义重新梳理一下。一、NPN和PNP区别NPN 是用 B→E 的电流(IB)控制 C→E 的电流(IC),E极电位最低,且正常放大时通常C极电位最高,即 VC > VB > VEPNP 是用 E→B 的电流(IB)控制 E→C 的电流(IC),E极电位最高,且正常放大时通常C极电位最低,即 VC <...
2021-10-27 13:53:12
8654
2
原创 Qt deleteLater()和delete 区别
deleteLater() 是QT的产物, 而C++标准是没有的。delete是C++与QT公用的。所以很多人,是不太相信deleteLater()的。简单地讲一下deleteLater() 的作用吧。QT源码说明:void QObject::deleteLater(){ QCoreApplication::postEvent(this, new QDeferredDeleteEvent());}bool QObject::event(QEvent *e){ sw
2021-10-26 13:35:39
4577
原创 分享一个嵌入式linux硬件看门狗操作
查看 /dev/watchdog 是否存在该节点,如果存在,驱动支持硬件看门狗操作。#include <stddef.h>#include <ctype.h>#include <stdio.h>#include <string.h>#include <linux/watchdog.h>#include <sys/ioctl.h>#include <linux/rtc.h>#include <errn
2021-10-15 17:09:16
566
原创 linux 基于shell 的软件看门狗
#!/bin/shwhile : #循环,为了让脚本一直运行监控dosleep 15 # 每次监测时间15秒DTTERM=`pgrep appName` #appName为进程名if [ -n "$DTTERM" ]then echo "app service is ok" >> /var/log/app.log#正确输入信息到日志文件else echo "app servicie not exist" >> ...
2021-09-10 09:57:54
2833
原创 mdev和udev之间的关系
关于udev和mdev之间的区别与联系我发现自己现在还没有把它完整的给区分开来和联系起来.设备文件系统有devfs,mdev,udev mdev是udev的简化版本,是busybox中所带的程序,最适合用在嵌入式系统,而udev一般用在PC上的linux中,相对mdev来说要复杂些,devfs是2.4内核引入的,而在2.6内核中却被udev所替代,他们有着共同的优点,只是devfs中存在一些未修复的BUG,作者也停止了对他的维护,最显著的一个区别,采用devfs时,当一个并不存在的设备结...
2021-01-25 14:55:45
1370
原创 ubuntu下u盘的自动挂载
一般固定的u盘在/dev/sdxx 的形式,先在/mnt下建一个usb目录用于挂载。1.在/etc/udev/rules.d下创建10-usb.rules文件,内容如下:SUBSYSTEM=="block", KERNEL=="sdb4", ACTION=="add", NAME="Myusb", SYMLINK+="Myusb_link", RUN+="/bin/bash /home/usbadd.sh"SUBSYSTEM=="block", KERNEL=="sdb4", ACTION=="rem
2021-01-23 11:12:22
5076
4
原创 QT 学习之路
一、 C/C++语言基础和强化编程1、c/c++逻辑,循环,判断等语句流和运算符及其在各种算法中的案例分析2、函数及其相关深化:指针函数,函数指针,递归函数,函数参元传值类别3、变量(variable)类型及其声明使用及其内存分配区域4、地址(address),指针(pointer),多重指针及其使用5、数组(array)和指针6、结构(struct),联合(union),枚举(Enum)及其编程及应用案例分析7、结构体内存分配形式和规则8、计算机中数据存放的基本原理9、内存(memor
2021-01-06 08:41:15
4375
原创 linux下 wpa_supplicant 工具使用
官网:http://w1.fi/wpa_supplicant/wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。通常情况下,可以通过wpa_cli来进行WIFI的配置与连接,如果有特殊的需要,可以编写应用程序直接调用wpa_supplicant的接口直接开发。启动wpa_supplicant应用$ wp...
2020-04-14 15:33:39
1326
1
原创 linux wlan无线网卡调试常用命令 iw
# iw help # 帮助# iw list # 获得所有设备的功能,如带宽信息(2.4GHz,和5GHz),和802.11n的信息# iw dev wlan0 scan # 扫描# iw event # 监听事件 # iw dev wlan0 link # 获得链路状态 # iw wlan0 connect foo # 连接到已禁用加密的AP,这...
2020-03-17 15:01:10
3623
原创 linux select的用法
在Linux中,对于实现I/O端口的复用,select函数我们会经常看到。 Select 函数详细介绍 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数...
2020-03-16 21:13:45
359
原创 QT移植多点触控
注:本方法只在S5P4418平台,Qt版本:5.4.1编译器:arm-cortex_a9-linux-gnueabi-gcc-4.7.4下试验成功,其他平台未做测试,不同的qt和工具链版本之间会有一定的差异。前提是触摸屏的硬件及驱动是支持多点触摸的(evtest程序测试)。1、编译之前准备tslib-mt.tar.gz 多点触控校准程序 mtdev-1.1.5.tar.gz ...
2020-03-04 17:25:36
2157
原创 漫谈(三)对”C“语言的理解,“不看后悔一辈子”
各类不同类型指针的区别到底是什么呢?比如:double *、float*、int * 、char *、void *等;它们之间存在着哪些不同呢?在这里,针对int *和cha *做个实验,以便更好的理解。#include <stdio.h>int main(void){ int *p; char *q; int k = 10; char...
2020-03-03 21:13:07
232
原创 漫谈(二)对”C“语言的理解,“不看后悔一辈子”
指针作为一种引入类型。不同的表示方式到底有什么区别?比如:double *、float*、int * 、char *、void *等;不管是指向 double的指针,还是指向int的指针。其实都是一种指针类型,在某种意义没有任何区别。在这里,说一下相同点和不同点。这时候便想起“指针就是地址”,这句话貌似也是正确的了。#include <stdio.h>int m...
2020-03-02 20:58:17
332
原创 漫谈(一)对”C“语言的理解,“不看后悔一辈子”
臭名昭著的指针,该如何让自己释怀?指针就是地址 ?错误指针其实是一种保存变量地址的变量,在c语言中是比较频繁使用的。1.“*”作为一种引入类型int *(类型) :指向int的指针类型float *(类型):指向float的指针类型double*(类型):指向double的指针类型因为是指针类型,所以它和int类型、float类型、double类型一样2.先...
2020-03-01 22:56:34
357
1
原创 蓝牙4.0,蓝牙BLE模块,蓝牙4.0和蓝牙BLE的区别?
一、关于蓝牙4.0 蓝牙4.0标准包含两个蓝牙标准,准确的说,是一个双模的标准,它包含传统蓝牙部分(也有称之为经典蓝牙Classic Bluetooth)和低功耗蓝牙部分(Bluetooth Low Energy)。这两个部分适用于不同的应用或者应用条件。传统蓝牙是在之前的1.0.1.2,2.0+EDR,2.1+EDR,3.0+EDR等基础上发展和完善起来的,低功耗蓝牙是No...
2019-03-06 11:01:55
7006
原创 通俗的来理解MQTT中的发布和订阅
通俗的来理解MQTT中的发布和订阅 刚开始接触物联网,IOT,MQTT,感觉傻傻的什么都分不清楚,对于MQTT各方的身份和功能也无法理解,直到有一天,真正亲自去使用了MQTT服务器,才理解其中的奥妙。 在不了解MQTT通信原理以及程序架构的情况下,不要先看代码,否则会无比痛苦,还是先通过MQTT通信工具测试一遍通信过程。这样理解起来就比较直观。 ...
2019-02-28 11:16:33
8279
1
原创 物联网的通信过程
物联网的整体通信过程到底是什么样子的呢?1、设备端:物联网设备总体来说,只要能够上网的设备,我认为都是物联网设备。像摩拜单车上的智能锁、小米的智能插座、智能音箱等设备。2、APP端:这里不单只安卓用户、IOS、以及PC,任何一个终端,我认为都可以是。3、MQTT服务器:就相当于红娘,它把APP端的信息和设备端进行连接。实现数据通信。这样在某种逻辑上APP就和通过透传的方式和某...
2019-02-26 21:12:09
4076
原创 Windows上搭建EMQTT服务器
上一篇文章讲到EMQTT是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源 MQTT 消息服务器。官网下载地址:http://www.emqtt.com/downloads百度网盘下载地址:链接:https://pan.baidu.com/s/1k0oPkN5HuS7A_y22YJP30Q 提取码:9q36 下载的版本为wind...
2019-02-26 20:51:46
6067
4
原创 物联网你需要知道名词定义
1.1物联网是什么? 物联网的本质还是互联网,只不过终端不再是计算机(PC、服务器),而是嵌入式计算机系统及其配套的传感器。这是计算机科技发展的必然结果,为人类服务的计算机呈现出各种形态,如穿戴设备、环境监控设备、虚拟现实设备等等。只要有硬件或产品连上网,发生数据交互,就叫物联网Internet of things(IoT)。 1.2 MQTT是什么? ...
2019-02-26 20:10:09
1549
原创 MQTT协议-MQTT协议解析(MQTT数据包结构)
MQTT,目前物联网的最主要的协议之一,基本上所有的IOT云平台都使用了MQTT,比如机智云,中国移动的oneNet、百度的云平台、阿里物联网云平台。虽然MQTT很火,但是目前对MQTT的资料确实很少,尤其是在如何移植到嵌入式上来。大部分的平台商的做法都是跟模块商合作把MQTT协议集成到WiFi模块跟GPRS模块里面,捆绑一并销售,不让用户过多的了解物联网最核心的东西。还没有深入去...
2019-02-26 13:44:06
10541
原创 pthread_cond_wait和pthread_cond_signal使用方法
pthread_cond_wait() 用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread_c...
2019-01-23 13:22:50
3093
原创 asmlinkage简要理解
一、在大型C语言项目工程或者linux内核中我们都会经常见到两个FASTCALL和armlinkage 两个标识符(修饰符),那么它们各有什么不同呢?今天就给大家共同分享一下自己的心得. 大家都知道在标准C系中函数的形参在实际传入参数的时候会涉及到参数存放的问题,那么这些参数存放在哪里呢? 有一定理论基础的朋友一定会肯定地回答:这些函数参数和函数内部局部变量一起被分配到了函数的...
2019-01-22 13:56:38
12153
1
原创 sysfs_create_group创建sysfs接口
在编写驱动程序时,需要对驱动里的某些变量进行读写,或函数调用,再或者驱动某个开关量。可通过sysfs接口创建驱动对应的属性,便可以在用户空间通过sysfs接口的show和store函数与硬件交互;DEVICE_ATTR宏定义在include/linux/device.h中1、函数原型是:#define DEVICE_ATTR(_name, _mode, _show, _s...
2019-01-11 15:30:54
3082
原创 RTC-PCF8563驱动问题总结
插上电池,确保电池有电(测量电池座两端的电压为2.7V左右即为有电),没有接入电池或者电压过低时会有打印:进入系统后通过依依命令 # date -s "2017-01-21 12:34:56"Sat Jan 21 12:34:56 UTC 2017# hwclock -w# hwclock Sat Jan 21 12:35:34 2017 0.000000 seconds#...
2018-10-23 17:50:52
8026
1
原创 Apache与Nginx的优缺点
Apache与Nginx的优缺点比较 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: re...
2018-09-26 17:15:39
247
原创 Ubuntu 下安装mysql和远程连接
一、下载并安装mysql sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 注意:安装过程中会提示设置密码什么的,注意设置了不要忘了。 二、安装完成使用 使用如下命令来检查是否安装成功: sud...
2018-09-14 14:08:10
931
原创 mysql正则表达式
MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。下表中的正则模式可应用于 REGEXP 操作符中。模式 描述 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '...
2018-09-13 15:35:50
270
原创 关于MQTT的知识点总结
问题一:单片机缓存有限,处理能力有限的情况下,消息不可能一次发出,这种情况下要怎样通过MQTT发布消息?先组装publish协议的头,里面写好payload的长度,通过tcp发出去,然后一点一点发payload。如果拿不到payload总长度,这个事情就难办。因为你发了一个publish协议报,服务端读到head里面的payload的长度之后,就会一直读,读到需要的长度,才算这个publish...
2018-09-07 17:16:19
6262
原创 linux zynq 中断控制器
uart@e0001000 { compatible = "xlnx,ps7-uart-1.00.a"; reg = ; interrupts = ; interrupt-parent = ; clock = ;};The second value is the interrupt number. The translate function adds 16 to SPIs and 3
2018-07-06 17:34:04
1643
原创 navicat for mysql 连接 mysql 出现1251错误
navicat for mysql下载地址:链接:https://pan.baidu.com/s/1Nh2ippFKHrWXnzPx_hda8g 密码:fumf客户端使用navicat for mysql。本地安装了mysql 8.0。但是在链接的时候提示:主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。打开mysql命令行输入如下命令查看,系统用户对应的认证插件:可以看到roo...
2018-06-15 21:30:10
4781
2
原创 编译lua开发固件,配置自己想要的功能
编译平台Ubuntu 16.04 一、首先安装git ,执行 :apt-get install git 二、然后下载代码,过程需要大概3-5分钟,根据电脑网速决定的。执行 git clone https://gitee.com/WaitingForMe/jx-nodemcu-firmware-master.git三、执行 cd jx-nodemcu-firmware-master ,进入jx...
2018-06-14 16:47:34
2939
2
原创 STM32低功耗--停机模式
根据项目需要选择的是停机模式进入停止模式之后,任何外部中断都可以唤醒低功耗,但是需要重新配置时钟,不然系统将以默认时钟(没有经过倍频)运行。1.进入低功耗RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); PWR_EnterSTOPMode (PWR_Regulator_ON,PWR_STOPEntry_W...
2018-06-01 10:13:45
6905
4
原创 编译驱动的Makefile解析
一个典型的编译驱动模块的Makefile文件如下所示:KERN_DIR = /root/driver/kernelobj-m += module_test.oall: make -C $(KERN_DIR) M=`pwd` modules.PHONY: clean clean: make -C $(KERN_DIR) M=`pwd` clean 解析:obj-m += module_tes...
2018-05-14 13:51:24
2646
原创 STM32系统时钟配置查询
有时候我们需要知道自己单片机平台使用的主频是多少,因为很多外设都要根据主频去分配自己的时钟系统。 RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq(&RCC_Clocks); 系统调试信息: 根据此调试信息,我们可以清楚看到系统分配的时钟频率。...
2018-05-07 11:50:41
850
原创 在Linux内核中打印日志时间戳
今天在和FPGA,联调过程中,需要测试脉冲信号。目的是为了测试两个中断之间的时间间隔。开启内核的打印时间在编译Linux内核:make menuconfig ---> Kernel hacking -->printk and dmesg options--> show timing information on printks 当选中这个选项后,启动内核,会在日志信息前面加上时...
2018-04-25 15:36:28
8399
原创 zynq制作SD镜像
一、下载镜像文件链接:https://pan.baidu.com/s/1YQz76uzLquzuCjkd7ce56A 密码:zh0v二、制作SD镜像SD 卡镜像xillinux-1.3.img 在linux 下可以直接挂载并做修改,修改前应该做好备份。xillinux-1.3.img 镜像分为两个分区part0 和part1,其中part0 是FAT32 格式,part1 是ext4 格式。要挂载...
2018-04-11 11:07:08
2048
mtdev-1.1.5.tar
2020-03-04
linux-0.01源码以及linux内核完全注释v3.0版赵炯_内核版本0.11
2019-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人