嵌入式开发藏经阁
文章平均质量分 61
嵌入式开发相关知识的分享
@菠萝菠萝哒
一个路过的95后嵌入式软件程序猿(笑)
展开
-
使用route查看路由表,添加/删除默认路由网关
route命令个人最近常使用的就是添加/删除默认路由,以及查看路由表了,其他高深的操作也没用用上,故记录一下这三个简单的但是又经常使用的操作。1. 查看路由表2. 添加默认网关route add default gw xxx.xx.x.xxx3. 删除默认网关route del default gw xxx.xxx.x.xxx...原创 2022-03-17 18:24:31 · 9727 阅读 · 1 评论 -
Ubuntu虚拟机中设置NAT转发使开发板可以联网
之前写过一篇《PC-开发板-Ubuntu虚拟机ping通三者的网络连接》讲解如何使用有线网络如何使PC、虚拟机和开发板能够相互Ping通,本文是其的升级版本,在相互能够Ping通的基础上,开发板也能够连接联网Ping某度。本文的主要操作是在ubuntu虚拟机中设置NAT转发,让NAT网络转发 PC-开发板-虚拟机桥接网络 中该网段的数据。虚拟机设置双网卡,网卡一为NAT模式,在NAT模式下,主机网卡与虚拟的NAT设备相连,虚拟的NAT设备与虚拟的DHCP服务器一起链接到虚拟交换机VMnet8中,实现虚拟原创 2022-03-17 18:00:31 · 2722 阅读 · 1 评论 -
【EE】案例分享-如何设计继电器电路?
几年前做过一个东东,里面有个类似电磁锁的组件,需要控制其的开合,拿出来分享分享。说到这样的需求,第一时间想到的就是继电器,实际也是通过继电器实现的。该电磁锁的电机动作是通过通断电实现的。基本的工作方式是通电解锁、断电上锁。为了实现这一简单的功能,需要控制电路中某一线路的通断,为此引入继电器的使用。如下图所示在继电器电路中使用光耦隔离器件,达到防止因有电气连接造成干扰。当电路中OPEN端有高电平信号时,光耦电路导通,三极管部分同时导通,继电器通路,常开触点接通,继电器开启。 如上述原理图所示,引脚“原创 2021-08-15 18:31:39 · 1595 阅读 · 0 评论 -
虚拟串口软件VSPD的使用
虚拟串口软件VSPD的使用。串口在嵌入式开发中有着十分重要的地位,其不单单是一种常用的通信接口,还是调试打印的一种手段。有时候在进行上位机开发的时候需要进行串口相关的功能测试,如果要使用实际的硬件设备来做调试的话假如你是单片机的话你还得再弄一个USB转Uart,假如你想用一台PC来做测试的话那还得用两个USB转Uart,想想还是挺麻烦的,这时候一个虚拟串口的存在就能解决你的燃眉之急。原创 2021-07-26 07:32:13 · 4597 阅读 · 6 评论 -
一文详解光电容积图 (PPG) 和心电图 (ECG) 基本工作原理
最近在做PPG和ECG相关的Sensor的驱动和应用的开发,在找资料的时候发现一篇解析得很详细且清晰的文章,故分享。本文转载自:立锜科技电子报:ECG/PPG量测解决方案0、摘要 本应用文件介绍了心电图 (ECG) 与光电容积图 (PPG) 的基本工作原理,讨论了ECG与PPG生理信号的量测,以及提高可靠性、实现高精度电气特性的难点。一般高精准度的ECG与PPG架构都是采用模拟前端和ADC组合而成的解决方案。1、概述 心脏运作可以揭露人体许多极具价值的信息,包括其健康状态、生活方式,甚.转载 2021-05-16 00:31:53 · 22315 阅读 · 0 评论 -
VSCode添加头文件路径解决“cannot open source file “xxxx.h“”
在下在使用VSCode的时候遇到了以下问题#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (/home/pi/works/mqtt_demo/mqtt_client.c).C/C++(1696),虽然说我实际开发编译是通过编写Makefile实现的,对我实际开发并不造成影响,但是IDE老是那么红着,显示 ERROR ,实属不雅: 那原创 2021-03-26 11:48:14 · 17432 阅读 · 6 评论 -
树莓派显示有黑边,或许是因为你没有这样设置?
树莓派4B新鲜出炉,摘一个来尝尝鲜,但是接上显示器之后感觉不尽如人意,怎么回事呢?看看这下面能跑坦克的大黑边,好歹我的显示器也是窄边框,虽然不是100%都是屏,但是这显示得缺斤少两就是过意不去,所以这到底是为啥呢?...原创 2021-01-31 23:58:38 · 1039 阅读 · 0 评论 -
树莓派上如何使用截屏-Scrot帮你忙
Scrot是Linux中用于截图的工具,其使用的方法简单且能达到的效果诸如全屏截取,区域截取,延时截取等,下面来看看这个工具该怎么使用。Scrot的安装:sudo apt-get install scrot用法1)全屏截取scrot2)区域截取scrot -s3)更多使用方法scrot -hFYI,更多参数介绍:参数介绍描述-h,–helpdisplay this help and exit-v,–versionoutput versio原创 2021-01-31 23:44:01 · 267 阅读 · 0 评论 -
【HarmonyOS HiSpark AI Camera试用连载 】自定义Shell命令编程实例
上一篇我们介绍了一下在HarmonyOS中常用的一些shell命令,HarmonyOS支持自定义Shell命令,那接下来我们将就如何自定义一个shell命令进行讲述。如何新建自定义shell命令?答: 1)使用osCmdReg函数进行shell命令注册; 2)重新编译。 对的,就是这么简单,那这就来实践一下吧。注册shell命令所依赖的头文件如下:#include "shell.h"#include "shcmd.h"Coding:int shell_demo(void){原创 2021-01-10 22:47:46 · 262 阅读 · 0 评论 -
【HarmonyOS HiSpark AI Camera试用连载 】鸿蒙OS常用的shell命令
0、序 HarmonyOS内核提供的Shell支持调试常用的基本功能,同时HarmonyOS内核的Shell支持添加新的命令,可以根据需求来进行定制。本文主要介绍已经实现了的常用的一些Shell命令,HarmonyOS内核提供的Shell命令操作主要有以下几类:系统相关命令、文件相关命令、网络相关命令,下面就三部分进行介绍。1、系统命令1)help help命令用于显示当前操作系统内所有操作指令。2)kill 命令用于发送特定信号给指定进程。命令格式: kill [signo | -原创 2021-01-10 22:41:59 · 1813 阅读 · 1 评论 -
Jetson Nano编译安装opencv4.3.0并使能cuDNN加速
前情提要: 在使用opencv时,尝试利用cuda进行相关模型加载处理的加速,但是在实际的使用时出现以下问题:Traceback (most recent call last):File "/home/colin/works/face_detect/detect_faces_video.py", line 70, in <module>CatchUsbVideo("Find face", 0, 0)File "/home/colin/works/face_detect/detect_原创 2020-12-27 18:15:02 · 3976 阅读 · 8 评论 -
Jetson nano更换国内源及Eorror:the public key is not available的解决
在更换国内的软件源后进行更新出现了以下问题:The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0CC3FD642696BFC8Reading package lists... DoneW: GPG error: https://packagecloud.io/headmelted/codebuilds/debian stretch InRelease: T原创 2020-12-27 16:39:59 · 869 阅读 · 0 评论 -
【HarmonyOS HiSpark AI Camera试用连载 】实操如何Mount上一个NFS网络文件系统
序: 网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。 如上图所示,当我们的 NFS 服务器设定好了分享出来的 /home/sharefile 这个目录后,其他的 NFS 客户端就可以将这个目录挂载到自己系统上面的某个挂载点 (挂载点可以自定义),例如前面图示中的 NFS client 1 与 NFS client 2 挂载原创 2020-12-10 11:25:31 · 474 阅读 · 0 评论 -
【HarmonyOS HiSpark AI Camera试用连载 】Harmony应用编程之GPIO编程踩坑小记
GPIO即通用型输入输出,通常GPIO的控制器都是通过分组的形式进行管理GPIO管脚的,比如:STM32中通常会将GPIO分组为A、B、C组等由不同的控制器进行管理。通过对每个IO所对应的的寄存器进行读写就可以完成对GPIO管脚的相应操作。包括:1、设置IO口的方向:输入或者输出,Harmony的这个板子暂不支持高阻态;2、设置IO口的模式:上拉、下拉、浮空等;3、读写IO口的电平值:完成逻辑电平的读取或者输出;4、设置外部中断:设置IO口的中断响应函数,以及相应的触发方式,同样的可以进原创 2020-12-10 10:59:47 · 647 阅读 · 0 评论 -
Jetson nano安装tensorflow及scipy“libraries mkl_rt not found“问题的解决
目前最新的JetPack4.4, TensorFlow版本更新到2.1.0版本,并且由原来的TensorFlow-gpu更改为tensorflow.sudo pip3 install --pre --no-cache-dir --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow...原创 2020-11-08 18:19:33 · 3260 阅读 · 0 评论 -
TensorFlow对Cuda的支持问题:Could not load dynamic library ‘libcudart.so.10.0‘; dlerror: libcudart.so.10.0
安装完Temsorflow之后,在python环境中import已安装的temsorflow模块,但是出现了以下的问题:Python 3.6.9 (default, Jul 17 2020, 12:50:27)[GCC 8.4.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>> import tensorflow as tf2020-10-26 15:00:4原创 2020-11-08 00:43:14 · 620 阅读 · 0 评论 -
【HarmonyOS HiSpark AI Camera试用连载 】编译及开发环境搭建-来自HarmonyOS的Hello World!
0、序 由于HarmonyOS的源码编译需要Linux环境,目前HarmonyOS源码只支持在Linux系统中进行编译,可以将Linux环境下的工程目录映射到Windows环境下,然后使用DevEco Device Tool打开,并在Windows环境下进行烧录和调试。所以需要Linux server + Win workstations + Dev Kit结合使用。1、首先配置Windows端环境1.1、安装visual studio code 官网传送门:https://code.visu原创 2020-11-07 17:15:28 · 3027 阅读 · 3 评论 -
FreeRTOS始动篇1--让FreeRTOS在STM32上跑起来(基于STM32CubeMX)
图片来源:https://developer.arm.com/tools-and-software/embedded/cmsis原创 2020-09-07 00:18:00 · 1088 阅读 · 1 评论 -
串口printf输出浮点型数据ENCODING ERROR问题的修改(基于STM32CubeIDE)
串口打印对于嵌入式开发来说是十分常用且重要的调试手段,在使用STM32CudeIDE进行开发时,遇到了串口输出编码错误这个问题时刚开始还没意思到是打印浮点数时出的问题,因为原本打印其他数据的时候是正常的,后知后觉,原来是浮点型数据的锅,如下图所示:**How to solve it?**Step1 :在STM32CubeIDE中打开你的工程,右键工程名,选择Properties;Step2 : C/C++ Build -> Settings -> MCU GCC Linker原创 2020-09-06 23:42:58 · 558 阅读 · 1 评论 -
使用STM32CubeProgrammer,出现CubeProgrammer_API or one of its dependencies is missing......
使用STM32CubeProgrammer时,出现错误CubeProgrammer_API or one of its dependencies is missing. Please try reinstalling the program of check your java architecture。如下图所示: 出现这种状况大多数是安装的JAVA版本支持不兼容,可重新安装PC端JAVA的版本,目前本人所使用的是JAVA 8 Update 261(8.0.2610.12),...原创 2020-09-06 18:49:18 · 1990 阅读 · 0 评论 -
Jetson nano增加Swap分区大小操作指南
首先使用Jetson nano系统出厂自带的jetson-stats性能监控工具jtop查看当前的系统状态。 上图是安装完官方系统之后的系统状态,Memory大小4G,Swap内存大小2G。在系统运行较大规模的运算时,会有弹窗提醒Swap空间不足,所以接下来就看看如何增加Swap内存。生成swapfile文件操作如下#1)新增swapfile文件大小自定义sudo fallocate -l 6G /var/swapfile#2)配置该文件的权限sudo chmod 600 /var/原创 2020-09-03 00:07:30 · 4658 阅读 · 6 评论 -
u-boot无法通过nfs挂载处于Ubuntu 18.04服务器的根文件系统的解决
在使用nfs挂载处于Ubuntu18.04 服务器的网络文件系统时出现了以下的状况:VFS: Unable to mount root fs via NFS, trying floppy. VFS: Cannot open root device “nfs” or unknown-block(2,0): error -6 Please append a correct “root=” bo...原创 2018-08-13 13:55:49 · 5647 阅读 · 4 评论 -
学习笔记:Linux内核的配置裁剪
内核的剪裁,就是找到相应单板的配置文件,进行内核的精简化配置。相应的文件进入Linux内核之后在以下目录寻找: cd ././arch/arm/configs/ 以上所显示的就是该内核版本 Linux-2.6.22.6 所支持的单板类型,选择与s3c2440类似的s3c2410的配置文件 s3c2410_defconfig进行内核配置。注:在内核编译配置的过程中出...原创 2018-03-13 20:25:20 · 974 阅读 · 0 评论 -
Ubuntu 16.04下ESP32烧录出现A fatal error occurred: Timed out waiting for packet header,解决!
配置好了相关环境及套件,在进行程序烧录“make flash”时出现了以下错误: Connecting........_____....._____.....___A fatal error occurred: Timed out waiting for packet header/work/esp32/sources/esp-idf/components/esptool_p...原创 2018-06-26 15:08:52 · 17441 阅读 · 5 评论 -
PC-开发板-Ubuntu虚拟机ping通三者的网络连接
PC端:win10虚拟机:Ubuntu 18.04开发板:JZ2440 以前在学习的时候为了能够挂载NFS文件系统经常是拖着一个路由器来进行学习的,一方面是为了PC端能够正常上网,另一方面是借助路由器使得开发板和PC端、虚拟机端能够ping通。但是这种方法终究不是很方便,也不是走到哪都拖着一个路由器,所以PC与开发板直接连接就方便很多了。Step1:使用网线连接开...原创 2019-12-22 10:50:47 · 504 阅读 · 0 评论 -
短距视频信号无线通信网络(Short-range video signal wireless communication network)
该短距视频信号无线通信网络是大二期间参加校电赛的选拔赛时候的作品,想想时间过得还真快! 该方案设计实现节点间的无线通信网络来传输视频信号,并在此基础上进行字符叠加,中继传输,同时尽可能降低节点的功耗。我们将视频信号通过2.4GHz无线视频收发射模块传输和接收,用OSD字符叠加模块达到叠加字符信号的功能;在发挥部分通过1.2-1.5V电池和通过使用12V电源适配器分...原创 2019-10-24 23:53:34 · 1341 阅读 · 5 评论 -
基于树莓派+STM32+OneNET云平台打造智能家居系统(四)OneNET云平台篇
4.1设备的注册 在进行OneNET平台开发者账号注册之后,进入开发者中心,进行项目应用以及设备的新建、添加数据流等操作。 4.2应用的编辑 使用OneNET云平台所配备的应用编辑器功能,可以自定义的生成开发者所需要的应用。 4.3触发器的使用 触发器功能同时也是该平台所赋予的功能,实现当数据超过阈值时,发出邮件提醒用户。 4.4 与OneNET云平台交互控制程序(部分)...原创 2018-09-01 00:34:34 · 5128 阅读 · 17 评论 -
基于树莓派+STM32+OneNET云平台打造智能家居系统(二)系统架构及软件设计篇
2系统软件设计 2.1 STM32控制程序设计 2.1.1程序流程图 2.1.2 系统初始化void hardware_init(void){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 delay_init(); //延...原创 2018-09-01 00:15:27 · 5165 阅读 · 0 评论 -
基于树莓派+STM32+OneNET云平台打造智能家居系统(一)硬件设计篇
本次分享的是之前一个课程设计, 会分为几篇博文进行分享。智能家居是目前研究与发展的一大热点,本设计是结合STM32微处理器/树莓派(Raspberry Pi)3b+、温湿度传感器、继电器以及ESP8266和USB无线网卡等硬件设备,采用中移物联OneNET云平台提供云服务的智能家居系统。该系统由两部分组成,一是以STM32为中心控制器的温湿度监测与远程控制单元,二是以树莓派搭载Linux系统的实时...原创 2018-08-31 23:53:41 · 11702 阅读 · 0 评论 -
基于jz2440的bmp图片显示应用程序
```#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;sys/types.h&amp;gt;#include &amp;lt;sys/stat.h&amp;gt;#include &amp;lt;fcntl.h&amp;gt;#include &amp;lt;unistd.h&amp;gt;原创 2018-08-31 23:31:57 · 658 阅读 · 0 评论 -
基于linux3.4.2内核制作系统开机Logo(jz2440)
内核:linux-3.4.2 ubuntu:Ubuntu 18.04 开发板: JZ2440 准备工作: 准备BMP或者PNG格式Logo图片分辨率小于JZ2440分辨率480*272。 (依据韦老师的帖子:https://blog.csdn.net/thisway_diy/article/details/73089405?locationNum=1&amp;fps=1)步骤: 1...原创 2018-08-13 13:39:53 · 644 阅读 · 0 评论 -
嵌入式Linux之设备驱动程序_按键
按键驱动:查询方式①写出框架:a、构建 file_operation { .open .read ...原创 2018-03-18 22:00:12 · 241 阅读 · 0 评论 -
嵌入式Linux之字符设备的驱动
驱动程序是字符设备。写一个驱动程序:1、写框架;2、完善硬件的操作:a、看原理图; b、看芯片手册; c、写代码。LED驱动程序 裸板开发时使用的是物理地址,在嵌入式linux系统驱动开发时所使用的是虚拟地址,通过 ioremap()函数 进行虚拟地址的映射。使用i...原创 2018-03-18 21:57:13 · 1321 阅读 · 0 评论 -
ARM之编译与交叉编译
gcc和arm-linux-gcc的常用选项 gcc的使用方法:gcc [选项] 文件名 gcc常用选项: -v:查看gcc编译器的版本,显示gcc执行时的详细过程 -o <file> Place the output into <file> 指定输出文件名为file,这个名称不能跟...原创 2018-03-18 20:46:48 · 392 阅读 · 0 评论 -
基于树莓派+STM32+OneNET云平台打造智能家居系统(五)系统整合篇
5.1 系统的整合与调试 将各部分连接,综合测试如下图所示。 5.2 存在的不足与改进方案 经过几天的努力终于实现了该智能家居与安防系统的基本功能,但是从实际使用的角度上去考量这一系统还是存在诸多的不足需要进行进一步的改进。 1)由于课程设计的时间较为紧张,所以在系统的搭建时,使用的是开发板,在开发板上该系统的搭建,在体积方面会比较大。今后在改进时,应当减小设备的体积,合理设...原创 2018-09-01 00:37:31 · 2256 阅读 · 0 评论 -
基于ARM-Linux:Mjpg-streamer同时推流两个摄像头
mjpg-streamer同时推流两个摄像头出现过的问题:1、Unable to set format: Device or resource busyInit v4L2 failed !! exit fatali: init_VideoIn failedMJPG-streamer [137]: init_VideoIn failed重复使用了设备,该设备正在被占用。2、Una...原创 2018-12-31 22:40:31 · 2080 阅读 · 1 评论 -
基于树莓派+STM32+OneNET云平台打造智能家居系统(三)内网穿透篇
3.1系统网络拓扑图3.2 STM32与树莓派的无线网络ESP8266模块和树莓派使用USB无线网卡,都是通过WiFi通信来提供其相对应的网络服务的。Wi-Fi是一种允许电子设备连接到一个无线局域网(WLAN)的技术,通常使用2.4G UHF或5G SHF ISM 射频频段。连接到无线局域网通常是有密码保护的;但也可是开放的,这样就允许任何在WLAN范围内的设备可以连接上。ESP8266模...原创 2019-02-23 14:04:04 · 2578 阅读 · 0 评论 -
Ubuntu core基于udev机制热拔插U盘
udev是Linux内核的设备管理器,主要功能是管理/dev目录下的设备节点,同时也是用来接替热拔插的功能。 Linux内核使用udev机制创建设备节点,udev 完全在用户态 (userspace) 工作,利用设备加入或移除时内核所发送的hotplug 事件 (event) 来工作。关于设备的详细信息是由内核输出 (export) 到位于 /sys 的 sysfs ...原创 2019-06-04 21:06:58 · 1111 阅读 · 2 评论 -
NanoPi-Fire3配置使用FTP服务器
首先使用串口登录NanoPi的终端,确保网络连接正常!安装服务器软件:sudo apt-get install vsftpd注:提示无该软件源或安装包,需要进行软件源的更新sudo apt-get update安装sudo apt-get install vsftpd启动ftp服务sudo service vsftpd start查看 :ps -e修改FTP服务器的配置...原创 2019-05-11 21:01:15 · 434 阅读 · 0 评论 -
把玩Tiny4412--移植tslib库及配置内核支持电容触摸屏的使用
一、移植tslib库# tar -zxvf tslib-1.4.tar.gz# cd tslib# ./autogen.sh#./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/works/tools/tslib/tmp (安装路径自定义)...原创 2019-04-19 15:47:12 · 896 阅读 · 3 评论