自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 记录一下函数指针数组,挺有意思的

void *b_handle(uint8_t data8,uint16_t data16)容易理解成指针,其实这是函数,中间的*优先和void结合声明成函数返回值了,要想声明成指针,加一个(),让*和变量先结合,声明成指针,void (*b_handle[])(uint8_t data8,uint16_t data16);函数指针就成了void (*b_handle)(uint8_t data8,uint16_t data16);如果要变成函数指针数组,一般是添加[]表示数组,那就在变量的后面添加[];

2024-04-12 17:56:27 103

原创 stm32 ntp时间同步

NTP的四种工作模式,我们主要讲服务器 / 客户模式(server / client) 这种模式只需要在客户端配置,服务器端除了配置NTP 主时钟外,不需要进行其他专门配置。并且,只能是客户端同步到服务器,服务器不会同步到客户端。它属于TCP / IP协议套件的最老部分之一,是基于用户数据报协议(UDP),端口号是123。对于同步过程,NTP依赖于协调世界时(UTC),该时间是从分层系统中的各个客户端和服务器获得的。注意这里时间戳转换,自动转成了北京时间。NTP是计算机系统中的。

2024-04-12 17:56:15 255

原创 stm32 FOC系列 直流有刷控制原理

控制器方向:如果 Q1和 Q4 三极管导通,那么电机的电流方向是从点 a 到点 b,假设此时电机正转;如果 Q2 和Q3 三极管导通,那么电机的电流方向是从点 b 到点 a,此时电机就反转了。比如上图的PWM控制Q1,Q2 Q3关闭,Q4打开,根据PWM的占空比来控制速度。驱动电路只是大概的原理,实际的驱动电路需要增加电路的保护,比如mcu控制器和mos管之间的光耦隔离,上下管的互斥控制等。则将会发生短路,比如: Q1 和 Q2 同时导通或者 Q3 和 Q4 同时导通,这都是不可取的。

2024-01-20 17:05:56 869

原创 stm32 FOC 电机介绍

为什么要学习FOC?1.电机控制是自动化控制领域重要一环。2.目前直流无刷电机应用越来越广泛,如无人机、机械臂、云台、仿生机器人等等。需要什么基础?1.C语言,指针,结构体,编程规范。2.STM32外设使用。3.原理图阅读。4.芯片手册阅读。5.数序坐标系知识为什么要出本教程?1.直流无刷电机应用越来越广泛,网上资料比较散落,因此想要出一篇系统性的教程,从头到尾,深入浅出,帮助初学者快速入门直流无刷电机控制。

2024-01-20 15:47:25 1729

原创 ESP32 LVGL Gui-Guider的移植

按照上面的文章,使用Gui-Guider软件生成C代码之后,custom和generated是我们要使用到的文件, 其中custom是用来存放gui工程中我们自定义的一些代码,实际上如果没有自定义代码的话也可以不用,generated则是Gui-Guider工程生成的C代码,我们主要将这部分导入到我们的esp32s3工程中。到esp32的工程main目录下(已经移植好LVGL的工程),创建一个ui文件夹,将custom和generated放入此文件夹内。这块很主要,设置正确才能编译通过。

2023-12-04 09:47:44 726

原创 sql语句学习记录

【代码】sql语句学习记录。

2023-09-28 13:56:59 109

原创 stm32 freeRTOS lwip TCP快速发送,内存泄露问题

中断程序中对PCB->unsent 之类的处理出现了问题,tcp_write 不是没有临界保护,导致中断和主程序直接出现了共同操作。tcp_write 和 tcp_output,调用前关闭网口中断,调用结束开启中断。发送缓慢,tcp_write之后要等200多ms才能过发送出去,而且粘包严重。tcp_write之后,立马调用tcp_output ,tcp就会立马发送。持续快速发送和接受TCP数据出现断言。的问题,导致内存泄漏,越运行越慢。而且出现TCP断连,死机情况。其实就是一句话 主程序和。

2023-09-08 15:50:40 2220

原创 EdgeX Foundry (一)安装和部署

EdgeX Foundry (一)安装和部署

2023-02-11 10:36:20 1570

原创 centos7 docker 安装mosquitto,并添加账户和密码登录

centos7 docker 安装mosquitto,并添加账户和密码登录

2023-02-09 10:42:26 1164

原创 centos7 docker 安装mysql,及其配置文件映射

centos7 docker 安装mysql,及其配置文件映射

2023-02-08 16:48:03 335

原创 centos7 通过docker安装redis

docker的安装参考连接https://blog.csdn.net/u014069688/article/details/100532774https://www.docker.org.cn/dockerppt/106.html通过docker安装redis上图是拉取过后,重新拉取的结果显示。查看镜像获取 Redis 的默认配置模版可以通过官网下载配置例子:设置配置文件运行redis开启两个redis容器例程:配置文件结构:配置文件区别,只是修改这两处地方为对应的端口号启动端口号为8808的redis 的

2023-02-08 11:43:02 564

原创 STM32+ESP-07S+MQTT服务器实现数据上传和接收

STM32+ESP-07S+MQTT服务器实现数据上传和接收。GPIO0 接GND,点击开始,然后给模块上电,等待完成。工具最下面有进度条。esp32下载工具和mqtt固件包。完成之后,模块重新上电进行测试。选择文件,按照下图进行勾选。解压下载工具,打开工具。

2023-02-02 23:20:33 788

原创 stm32 lwip mqtt 修改发送接收长度和内存优化

stm32 lwip mqtt 修改发送接收长度和内存优化,不单独开辟数组内存,直接通过frertos的内存申请释放,统一管理内存。基于freertos优化lwip的pools。mqtt_opt.h(配置文件)

2023-01-06 11:25:46 908

原创 go语言的函数、方法、接口

方法和函数长得差不多,区别是方法定义时func关键字后面紧跟的是括号,括号里面是调用者形参及调用者类型,之后才是func_name,再之后是括号,括号里面是入参形参及入参类型(没有入参的情况下括号不可以省略),最后是出参类型,如果有多个出参,则出参类型要用括号括住。· Go中没有类,但是可以为结构体定义方法,方法就是一类带有特殊的接收者参数的函数。3、建议将相同的行为放在同一个接口内,例如下方的Eat接口,通过绑定到不同的对象上实现多态。方法和函数的最大区别是方法有接收者(从属),即方法都是有主人的。

2022-09-15 16:40:45 332

原创 go语言实现用牛顿迭代法求平方根函数..........

go语言实现用牛顿迭代法求平方根函数

2022-08-31 15:17:13 251 1

转载 VMwarePro16安装Ubuntu16.04图文教程

VMwarePro16安装Ubuntu16.04图文教程

2022-08-27 15:59:49 133

转载 记录一下qt的mqtt通讯

Qt(三) - Windows下MQTT通信 - 简书一、MQTT协议简介 MQTT消息报文的方式包括connect, disconnect, subscribe, unsubscribe, publish等(类似于HTTP请求...https://www.jianshu.com/p/fd70929661d5MQTT消息报文的方式包括connect, disconnect, subscribe, unsubscribe, publish等(类似于HTTP请求行的方法字段)。MQTT的消息模型为publish

2022-07-05 11:46:38 926 3

原创 window10 Qt 中使用boost库

由于网上的资料比较零散,这里进行汇总一下。boost库版本不建议使用最高版本,建议使用1.67,下载地址如下:Version 1.67.0一、编译boost源码为静态库 1、将你的Qt的工具目录(有g++.exe)设置环境变量。(我的是 F:\Qt592\Tools\mingw530_32\bin,要依据实际情况) 2、下载boost源码并解压(如boost_1_65_1.zip) 3、在cmd命令行进入boost_1_65_1/tools/build/

2022-06-30 18:41:07 1999

原创 stm32 mqtt 发送缓存的大小修改MQTT_OUTPUT_RINGBUF_SIZE

stm32 mqtt 发送缓存的大小修改MQTT_OUTPUT_RINGBUF_SIZE

2022-06-15 19:56:29 1571

原创 ubuntu 交叉编译mosquitto-auth-plug-0.1.3

下载编译源文件mosquitto-auth-plug-0.1.3.tar.gztar解压,进入目录,修改config.mk文件内容如下# Select your backends from this listBACKEND_CDB ?= noBACKEND_MYSQL ?= noBACKEND_SQLITE ?= noBACKEND_REDIS ?= yesBACKEND_POSTGRES ?= noBACKEND_LDAP ?= noBACKEND_HTTP ?= noBAC

2022-05-13 14:40:54 262

原创 ubuntu 交叉编译 mosquitto-1.5.8

下载mosquitto-1.5.8.tar.gz解压tar -xvf mosquitto-1.5.8.tar.gz进入解压目录,修改config.mk在VERSION=1.5.8 后面添加openssl的lib和includ交叉编译openssl见,之前文章CFLAGS += -I/home/forlinx/work/tool/openssl/out/includeLDFLAGS += -L/home/forlinx/work/tool/openssl/out/lib -lss

2022-05-13 14:25:03 266

原创 ubuntu 交叉编译hiredis-1.0.2

下载文件hiredis-1.0.2.tar.gz解压tar -xvf hiredis-1.0.2.tar.gz修改makefile 里面的prefix= //make install 的时候 安装路径或者在 make后面带这个参数进入目录hiredis-1.0.2make MALLOC=libc CC=aarch64-linux-gnu-gcc –cross-compile-prefix=/home/forlinx/work/edgeOS/build/toolchain/

2022-05-13 13:36:25 531

原创 Linux /etc/passwd和etc/shadow 详解

Linux /etc/passwd 内容Linux 系统中的 /etc/passwd 文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。[root@localhost ~]# vi /etc/passwd#查看一下文件内容root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:..

2022-05-09 11:30:39 5704

原创 Ubuntu18.04安装不同版本的GCC

安装你需要的版本如下:sudo apt-get install gcc-8sudo apt-get install g++-8添加软链接sudo rm /usr/bin/cpp /usr/bin/gcc /usr/bin/g++sudo ln -s /usr/bin/cpp-8 /usr/bin/cppsudo ln -s /usr/bin/gcc-8 /usr/bin/gccsudo ln -s /usr/bin/g++-8 /usr/bin/g++查看版本gcc -v

2022-05-07 14:12:36 1762

转载 nodeJs-require函数详解

前言个人理解:我将require分为2类的原则是,该字符串中是否含有路径。如以下示例1、无路径(也称为加载模块):require('find')2、有路径(也称为加载文件):require('./find.js')加载模块例子:require('find')1、node会先查找find模块是否是内置模块(nodejs内置的模块有fs、http等),找不到则进行下一步2、从当前目录向外寻找node_moludes查找是否有find.js文件,找不到进行下一步;3、在node_mol

2022-04-26 15:39:30 8582

原创 nodejs操作redis总结

本文总结常见的使用node操作redis服务,redis的key是唯一的,如果一个key所对应的存储类型是string,则不能再次覆盖式设置key为hash;1、链接Redisnode 链接Redisvar RDS_PORT = 5472;var RDS_HOST = '127.0.0.1';var RDS_PWD = '123456';const opts = { auth_pass: RDS_PWD, }const redis = require('redis'

2022-04-26 11:13:41 502

原创 MySQL、MongoDB、Redis 数据库之间的区别

MySQL:MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。Redis:是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布...

2022-04-26 10:10:19 2513

原创 在imx6ull上,移远EC20模块的GPS信息获取和解析

1、接上模块通过USB连接,需要插上SIM卡,查看设备如下root@ATK-IMX6U:~# ls /dev/ttyUSB*/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB32、使能GPS信息输出echo -e "AT+QGPS=1\n\r" > /dev/ttyUSB2通过命令查看信息root@ATK-IMX6U:~# cat /dev/ttyUSB1没定位到的情况$GPVTG,,T,,M,,N,,..

2021-09-23 17:12:23 1942

原创 ANS.1笔记:语法规则与类型概述

一、简介 ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。是定义抽象数据类型形式的标准,是用于描述数据表示、表示、传输、编码的记法。ASN.1只包含信息结构,不处理具体业务数据,它不是一个编程语言。ASN.1没有限定编码方法,各种ASN.1编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法(具体表达),常见的编码规则有: 1、基本编码规则(BER),规范编码规则(CER,Cano...

2021-09-14 17:45:21 939

原创 ubuntu18.04 交叉编译curl-7.65.3

下载源文件:curl downloads解压sudo tar -xvzf ocurl-7.65.3.tar.gz配置环境变量env LDFLAGS=-R/home/book/work/tool/openssl/build_openssl/lib ./configure --prefix=/home/book/work/tool/curl/build_curl CC=arm-linux-gcc --host=arm-linux --with-ssl=/home/book/work

2021-07-19 17:31:01 352 1

原创 HTTP请求详解 POST GET

HTTP请求报文的格式请求头与请求正文中间有一行空行,是告诉服务器请求头到此结束了接下来是请求正文请求方法:get,post,head,delete等等,告诉服务器你的具体操作是什么URL:可以从互联网上得到资源的位置和访问方法的一种简洁标识。URL结构:协议://域名 or IP地址:端口号/目录/文件名.文件名后缀?参数=值协议版本:目前几乎用的都是http1.1版本,增加了一个很重要的特性它支持长连接,其他具体细微差别不做讲述。请求头:请求头部为请求报文添加了一些附加信息,由“名/

2021-05-08 13:58:34 164

原创 ESP32-WROVER-E蓝牙学习笔记(2)BLE 的server client att

1、客户端 Client请求数据服务客户端可以主动搜索并连接附近的服务端客户端类似蹭网的2、服务端Server提供数据服务服务端不需要进行主动设置,只要开启广播就可以让附近的客户端搜索到,并提供连接服务端类似被蹭网的wifi如果想要让ESP处于别人随时可以搜索连接的情况要配置为服务端;如果想让ESP通过扫描连接周围可连接的蓝牙设备,需要把它设置成客户端,正好和WiFi模式的设定相反Server通过characteristic对数据进行封装,多个characteristic

2021-04-12 15:25:44 1270

原创 ESP32-WROVER-E蓝牙学习笔记(1)

1、概述1.1蓝牙结构 蓝⽛牙是⼀一种短距通信系统,其关键特性包括鲁棒性、低功耗、低成本等。蓝⽛牙系统分为两种不不同的技术:经典蓝⽛牙 (Classic Bluetooth) 和蓝⽛牙低功耗 (Bluetooth Low Energy)。 整体结构上,蓝⽛牙可分为控制器器 (Controller) 和主机 (Host) 两⼤大部分:控制器器包括了了PHY、 Baseband、 Link Controller、 Link Manager、 Device Manager、 HCI ...

2021-04-01 17:49:21 2267

原创 ubuntu 18.04 系统 ip地址设置

1、ubuntu 18.04 系统修改为静态ip地址vi /etc/network/interfaces改并为如下内容,保存并退出,执行/etc/init.d/S40network restart 重启网络服务auto loiface lo inet loopbackauto eth0iface eth0 inet static address 192.168.5.11 netmask 255.255.255.0 gateway 192.168.5.1...

2021-03-16 23:21:01 1032

原创 linux下查找文件夹下匹配的内容grep指令

问题现象:遍历当前目录下的所有文件,查找文本所在的文件问题解决:grep指令问题实现:grep -r "xxx" ./问题扩展:其他grep参数,参考grep --help其他用法:1.从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件grep "thermcontact" */*.in2.从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名3.查找时不区分大

2021-03-08 11:55:10 3026

原创 Linux zlog日志打印

1、zlog使用手册http://hardysimpson.github.io/zlog/UsersGuide-CN.html参考文章https://blog.csdn.net/fangye945a/article/details/859559062、zlog配置文件 大部分的zlog的行为都取决于配置文件,比如把日志打到哪里去,用什么格式,怎么转档,都由配置文件来决定。# comments[global]strict init = truebuffer min ...

2021-01-25 16:28:18 812

原创 linux进程间的通信(C): 消息队列

一、消息队列(message queue)消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。二、函数定义#include <sys/msg.h>int msgctl(int ms...

2020-12-23 17:23:13 392

原创 Linux 基于openssl库的paho.mqtt.c交叉编译出libpaho-mqtt3as.so

下载文件:git clone https://github.com/eclipse/paho.mqtt.c.git普通ubuntu编译cd paho.mqtt.cmakesudo make installmake出错安装opensslsudo apt-get install opensslsudo apt-get install libssl-dev交叉编译修改文件CMakeLists.txt,添加如下set(CMAKE_SYSTEM_NAME Linux)se

2020-12-10 19:07:49 1530 2

原创 ubuntu16.04 交叉编译openssl-1.1.1i

去官网下载安装包:https://www.openssl.org/source/解压sudo tar xvzf openssl-1.1.1.tar.gz配置文件如下:sudo ./config no-async no-asm no-sse2 no-ssl3 no-zlib no-bf no-camellia no-cast no-cms no-comp no-dso no-idea no-md2 no-mdc2 no-rc2 no-rc5 no-ripemd no-seed --p

2020-12-10 13:50:19 829

原创 Linux环境下执行脚本时报错:/bin/bash^M: 坏的解释器: 没有那个文件或目录

1、现象我在Windows 10 系统下编辑了一个发送消息到企业微信的shell脚本文件,然后copy到了远程的Linux服务器,当运行的时候报错了2、原因这个文件在Windows 下编辑过,在Windows下每一行结尾是\n\r,而Linux下则是\n,所以才会有 多出来的\r。3、解决方法使用指令sed -i 's/\r$//' xxxxxxx.sh,上面的指令会把xxxxxxx.sh中的\r 替换成空白!参考:https://blog.csdn.net/ou...

2020-12-08 13:55:15 132

Linux环境下的mqtt代码,修改添加互斥锁,解决掉线问题

网络找的其他mqtt资源,下载测试发现容易掉线,此mqtt源码经过修改测试验证,运行一天没出现掉线问题。在原有基础上加了互斥锁,运行环境linux c语言

2020-11-11

学树莓派笔记

我刚刚接触linux的学习的笔记;用树莓派学习linux入门还是很不错的;这个我的学习的详细笔记;供大家参考

2014-12-13

STM32F407_ETH

包含了STM32F407 有关ETH的工程和工具

2013-10-17

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

TA关注的人

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