自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式设备某个线程占用率太高了怎么办?

创建线程一般是用于循环处理某个任务的,所以一般都会有循环语句的出现,但是代码的运行都很快,如果不在循环中加入干预,那么线程就会一直在while中运行,所以就会让处理器花在这个线程的时间比较多,干预的方法最简单的就是。哈哈哈哈哈哈哈哈哈,虽然很简单的道理,但是在编码中常常会忘记这个细节,写此谨记!ps:其他方法可以是加定时器、事件驱动、线程同步等。

2024-01-26 15:35:11 415

原创 linux多进程编程中的一些tips总结(C语言)

C语言多进程编程使用fork和vfork的一些细节

2023-09-18 17:04:08 146

原创 LoRaWAN网关源码分析(V1.0.2)

LoRaWAN网关源码分析(V1.0.2)

2022-07-29 11:23:27 1749 1

原创 LoRaWAN中的网关和chirpstack到底如何通信的?UDP?GRPC?MQTT?

LoRaWAN中的网关和chirpstack到底如何通信的?UDP?GRPC?MQTT?

2022-07-27 19:01:01 4763

原创 在局域网内配置LoRaWAN的私有ChirpStack

在局域网内配置LoRaWAN的私有ChirpStack测试运行环境。

2022-07-20 20:53:25 3250

原创 详解虚拟机下三种联网模式

详解虚拟机下三种联网模式,仅主机模式,NAT模式,桥接模式,以及如何使用这三种模式。

2022-07-20 18:01:15 4100

原创 在Linux下用Docker搭建ChirpStack

在Linux下用Docker搭建ChirpStack,本文包括Docker的安装和理解,Chirp-Stack的安装和理解,以及Chirp-Stack服务器的搭建和登录。

2022-07-19 21:04:09 2306 8

原创 腾讯云接入LoRaWAN并调试

使用腾讯云平台来进行节点,网关,服务器三者的连通性测试

2022-07-18 22:00:02 2665 5

原创 linux下的spi环回测试

linux下的spi环回测试

2022-07-12 02:01:51 5375 3

原创 浅谈LoRa,LoRaWAN,NB-IoT三类物联网技术

关于三种物联网技术的理解和看法

2022-07-08 10:39:41 2395 1

原创 STM32学习—DHT11温湿度传感器采样驱动并用cjson格式上报

文章目录一,DHT11传感器介绍1.1简介1.2工作原理二,硬件连接三,时序代码3.1 数据总时序以及定义的一些宏3.2主机发送起始信号3.3从机发送应答信号3.3读取数据3.5采样函数四,cjson打包数据五,结果一,DHT11传感器介绍1.1简介DHT11温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有

2022-05-25 17:28:11 1059

原创 UNIX编程项目—基于树莓派的客户端定时获取温度上报给服务器

文章目录一,项目背景和要求1.1背景1.2要求二,流程图2.1客户端流程图2.2服务端流程图三,项目核心部分3.1数据库(以下代码均已封装)3.1.1 sqlite3初始化3.1.2 sqlite3插入数据3.1.3,sqlite3获取最大id3.1.4sqlite3获取数据3.1.5sqlite3删除数据3.1.6sqlite3关闭3.2socket初始化3.2.1客户端socket初始化3.2.2 服务器socket初始化3.3,zlog日志系统3.4,daemon进程3.5,安装信号3.6,make

2022-05-06 17:35:16 1203 2

原创 git初体验—使用gitee上传虚拟机项目代码进行管理

一,创建giteegitee网址:http://gitee.com/进入后按照提示注册自己的gitee账号:创建成功并且登陆后点击创建我的仓库:填写一些基本属性(路径中的unix将会作为虚拟机的文件夹):将仓库地址复制:在虚拟机下安装git:sudo apt-get install git使用git clone命令让仓库放入虚拟机:git clone 仓库网址输入ls命令可以看到unix文件夹仓库已经存在:用cd命令跳...

2022-04-09 14:13:03 3788 3

原创 UNIX实现IO多路复用之使用epoll函数实现网络socket服务端

一,前言UNIX下存在五种网络模型,分别是:同步阻塞IO,同步非阻塞IO,信号驱动IO,异步IO和今天要介绍的IO多路复用。那么IO多路复用解决的问题是什么呢?我们知道在UNIX下的很多函数都是阻塞的,阻塞是指IO操作在没有接收完数据或者没有得到结果之前不 会返回,需要彻底完成后才返回到用户空间;假设我们现在面临这样一个问题:我们需要在一个程序里要查看按键是否要按下,同时他还要从串口里读取数据进行处理,也要处理网络上来的数据,如果只是普通的利用三个read调用来解决,如果按键这时没按下(即数据没

2022-04-08 17:40:21 658 1

原创 UNIX实现IO多路复用之使用poll函数实现网络socket服务端

一,前言UNIX下存在五种网络模型,分别是:同步阻塞IO,同步非阻塞IO,信号驱动IO,异步IO和今天要介绍的IO多路复用。那么IO多路复用解决的问题是什么呢?我们知道在UNIX下的很多函数都是阻塞的,阻塞是指IO操作在没有接收完数据或者没有得到结果之前不 会返回,需要彻底完成后才返回到用户空间;假设我们现在面临这样一个问题:我们需要在一个程序里要查看按键是否要按下,同时他还要从串口里读取数据进行处理,也要处理网络上来的数据,如果只是普通的利用三个read调用来解决,如果按键这时没按下(即数据没

2022-03-31 21:35:40 329

原创 UNIX实现IO多路复用之使用select函数实现网络socket服务端

一,前言UNIX下存在五种网络模型,分别是:同步阻塞IO,同步非阻塞IO,信号驱动IO,IO多路复用和今天要介绍的IO多路复用。那么IO多路复用解决的问题是什么呢?我们知道在UNIX下的很多函数都是阻塞的,阻塞是指IO操作在没有接收完数据或者没有得到结果之前不 会返回,需要彻底完成后才返回到用户空间;假设我们现在面临这样一个问题:我们需要在一个程序里要查看按键是否要按下,同时他还要从串口里读取数据进行处理,也要处理网络上来的数据,如果只是普通的利用三个read调用来解决,如果按键这时没按下(即数

2022-03-28 20:51:49 1588

原创 多进程常见问题——创建多个线程时访问同一个父线程变量(临界资源)时如何加锁使得共享父线程变量不被重复修改?

多线程如何进行锁的操作来解决共享资源?

2022-03-23 21:56:18 727

原创 Linux下的基本C编程的三类高频函数操作第二类——字符串操作函数(str)

一,strlen和sizeofstrlen一般用来求字符串长度,而sizeof是求这一段储存空间的大小。它们的区别在于strlen不计算空白符的大小,且遇到\0就会停止工作。例如#include <stdio.h>#include <string.h>int main(int argc, char **argv){ printf("%ld\n",strlen("hello baby"));//结果为10; printf("%ld

2022-03-19 17:36:00 615

原创 LIinux下的基本C编程的三类高频函数操作详解第一类——文件操作函数(f)

文件操作函数fput和fputsfputc函数用于把一个字符(字符常量/字符变量)写入磁盘文件一般形式: ch=fputs(ch,fp);其中ch是要写入的字符,fp是文件指针变量,写入成功返回写入的字符,写入失败返回EOF;fputs和其相似,向指定文件写入字符串(字符串常量,字符串组名,变量)一般形式:fputs(字符串,文件指针);fgetc和fgetsfgetc函数用于从指定文件中读取字符赋予ch一般形式:ch=fgetc(fp);文件必须以读或

2022-03-18 18:04:03 153

原创 APUE进程深层理解fork和execl-程序代码里获取虚拟机IP地址

一,前言(问题引出)我们知道,在Linux下可以使用命令ifconfig eth0来获取网卡的IP地址,但如果我们想在C程序代码里获取IP地址又该如何实现 呢?其实ifconfig命令本身是一个程序,这样我们可以在程序里创建一个子进程来执行这个程序即可。另外一个问题是该命令执 行的结果会打印到标注输出(默认是屏幕)上,那我们C程不可能像人眼一样在屏幕上获取IP地址。对于这个问题我们可以在子 进程里将标准输出重定向到文件里,这样命令的打印信息会输出到该文件中。之后父进程就可以从该文件中读出相应的内

2022-03-17 16:48:42 4512 1

原创 采用SSH2协议登陆自己的虚拟机——Mobaxterm/SecureCRT登录到自己虚拟机下的Ubuntu操作系统

一,确保自己虚拟机下的Ubuntu操作系统正常联网判断自己虚拟机有没有联网可以在命令框输入ping www.baidu.com出现如下画面则表示已经连上网或者也可以用命令sudo apt-get install来简单的下载一个东西来查看。二,安装openssh并启动Ubuntu desktop 版本默认不安装SSH2的服务器程序openssh-server采用以下命令来安装sudo apt-get install open-server安装完成后可

2022-03-15 00:28:10 1859

原创 UNIX编程—网络socket

1 前言在进行网络socket编程之前,首先要明白计算机通信的原理。网络socket编程是建立在客户端和服务端之间的相互通信,这就必须要了解到计算机网络的知识。我所写的内容是实现简单的本机之间的相互通信。还可以上升到局域网之间不同pc的通信,甚至是不在同一局域网内的pc之间的相互通信。2概念梳理2.1UNIX下文件I/O写客户端和服务端程序时,你需要利用C语言的基本语法和UNIX下相关系统调用以及库函数。包括socket,connect,bind,listen,write,read的使用等...

2022-03-12 17:53:40 2388 2

空空如也

空空如也

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

TA关注的人

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