- 博客(36)
- 收藏
- 关注
原创 【Arduino】一分钟快速在vs code 编译开发Arduino
对于一些开发者来说,Arduino开发较为不方便,,不管从代码的阅读性、开发效率等等方面,vs code都要优于Arduino IDE开发,而且vs code开发可以使用需要插件,比如一些AI代码插件,加快开发速率,本文章仍然需要安装Arduino IDE,只不过具体开发是在vs code 中进行,同时在vs code 中进行对开发板的选择,程序烧录下载编程以及实现串口调试的功能,连接开发板,当前使用 ESP8266 开发板,选择对应串口,最后选择下载方式,ESP8266默认串口下载,无其它下载方式。
2024-11-02 18:25:41
2719
1
原创 【GUI】LVGL无操作系统移植以及移植过程错误处理
本文 主要介绍GD32移植LVGL的过程,以及移植过程中出现的问题以及解决方法,写的非常详细,基本上都截图了。准备包含触摸功能的屏幕实现触摸屏的显示和触摸驱动,确保屏幕没有问题。下载lvgl 8.3版本源码下载地址:https://github.com/lvgl/lvgl本次移植开发板立创天空星GD32F407VET61.69寸电容触摸屏 触摸芯片CS816t,显示:st7789。
2024-06-21 23:53:19
2203
2
原创 【Arduino】ADC模拟量输入
Arduino自己的硬件Arduino Uno模拟输入功能有10位精度,即可以将0~3.3V的电压信号转换为0~1023的整数形式表示。ESP8266也是只有10位,而ESP32,默认12位分辨率,可以接受0~3.3V电压信号转换成0~4095的整数形式表示。生活中,接触到的大多数信号都是模拟信号,如声音、温度的变化等。测量模拟量引脚A0电压,通过analogRead()函数读取,关系:0-10230-3.3V。pin: 读取的模拟输入引脚的名称,被指定的引脚必须是模拟输入引脚,该值未校准。
2024-06-11 13:22:18
2561
原创 J-Link烧录
J-Link是由德国SEGGER公司推出的,主要用于支持仿真ARM内核芯片的JTAG仿真器。它支持JTAG和SWD两种模式,可以配合多种集成开发环境(如IAR EWAR, ADS, KEIL, WINARM, RealView等)使用,支持ARM7/ARM9/ARM11, Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真。J-Link的驱动和固件版本可能会影响读取hex文件的结果,因为不同的固件版本和读取设置可能会导致细微的差异。
2024-06-05 19:48:21
1684
原创 【汽车操作系统】Autosar和商用OS
随着汽车功能越来越多,导致ECU的数量越来越多。1993年的时候,奥迪A8才只有5个ECU现在典型的现代汽车上有超过50个ECU,有的车甚至有150个ECU。但是ECU可能是不同的供应商提供的,各厂家的标准、软件架构可能不同,OEM车厂要让这些ECU之间正常通信,是一件复杂和困难的事。供应商软件开发的工作量也很大,版本众多维护起来非常困难。在ECU中添加新功能,或者把ECU-A的功能移植到ECU-B中也不是一件简单的事。
2024-05-19 19:25:31
1154
原创 【C语言】结构体
有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性这时候可通过结构体实现结构体(struct)可以理解为用户自定义的特殊的复合的“数据类型”定义结构体变量的方式:先声明结构体类型再定义变量名在声明类型的同时定义变量语法格式:// 先声明结构体类型再定义变量名struct 结构体名 {成员列表struct 结构体名 变量名;// 在声明类型的同时定义变量struct 结构体名 {成员列表}变量名;
2024-05-16 18:45:00
354
原创 【Arduino】Free RTOS系统
ESP32的SDK包中内置了FreeRTOS,在FreeRTOS中,线程(Thread)和任务(Task)的概念是相同的。每个任务就是一个线程,有着自己的一个程序创建任务相当于创建分身,开启多任务后,你可以简单理解为你拥有了多个loop函数,这样每个函数就可以执行单独的功能当操作系统使用某种任务调度策略允许多任务共享一个处理器时,虽然处理器在某一时刻只会给一件任务提供服务,因为调度机制保证不同任务之间的切换速度十分迅速,因此给人多个任务同时运行的错觉。
2024-05-15 19:15:00
1339
原创 【Arduino】外部中断
请注意,除了前四种(DISABLED, RISING, FALLING, CHANGE)是Arduino中比较通用的中断模式外,后面的几种(ONLOW, ONHIGH, ONLOW_WE, ONHIGH_WE)可能不是所有Arduino板或标准库直接支持的。(ESP32都支持)Arduino外部中断是一种功能,允许微控制器在检测到指定引脚上的信号变化时暂时停止当前执行的任务,而去执行一段特定的代码(中断服务程序ISR),之后再返回到原来的任务。要从特定引脚上分离中断,请使用提供要分离的 GPIO 的功能。
2024-05-14 19:15:00
1165
原创 【Arduino】数字I/O的使用 GPIO引脚使用
工作模式、ArduinoGPIO引脚工作模式、输入模式、输出模式、输入上拉、输入下拉、读取引脚状态、写入引脚
2024-05-13 18:45:00
1153
转载 状态机编程
有限状态机(finite state machine,简称状态机)是嵌入式开发中最重要,且最常用的编程模式之一。系统具备数量有限的状态;在某一时刻,系统总是处于一种状态之下;系统的状态会根据某些事件或条件进行转换;每个状态下,系统都会执行相应的动作。// 记录LED状态// 初始化I/O口// 等待按键按下// 当按键按下时,点亮或熄灭LEDledState=!ledState;ledState;delay(500);
2024-05-12 18:38:48
277
原创 【Arduino】delay()、millis() 时间函数
如果使用delay进行延时,将导致整个程序阻塞,影响此后的其他操作。对于处理稍微复杂的程序,很容易导致程度卡顿。推荐使用milis()函数,获取当前时间,根据不同的时间执行不同的操作,实现同样的定时、等待功能。在前面,我们使用delay()函数实现的LED的的间隔点亮,但是使用delay() 函数缺点:会堵塞整个loop,不能同时执行多个任务。运行延时函数时,会等待指定的时间,再运行此后的程序。两个函数都可以获取运行时间,也就是单片机开机至今的时间。micros(),微秒数,大约70分钟后溢出,回到零。
2024-05-12 18:35:04
3570
原创 【Arduino】ESP32/ESP8266 JSON格式解析
在开发物联网项目时,大型JSON信息存储再程序中,将会占用大量系统动态内存,严重的甚至会出现系统控制程序空间不足问题。对象可以包含多个数据,包括其他对象和数组,但不能直接存放对象或数组。- 数据以“名/值”对的形式呈现,其中“名”和“值”由冒号分隔。-数据对象:由一系列“名/值对”组成,用于表示复杂的数据结构。- 对象用大括号`{}`表示,对象中的“名/值”对由逗号分隔。- 对象和数组可以相互嵌套,一个对象的值可以是数组,反之亦然。- 数组:由一系列值组成,这些值是有序的。
2024-05-12 18:00:00
2819
5
原创 [Arduino] ESP8266读取DHT11数字温湿度传感器数据
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,是简单环境监测项目的理想选择。温度分辨率为1ºC,相对湿度为1%。温度范围在0ºC到50ºC之间,湿度的测量范围取决于温度。
2024-04-03 17:38:54
4525
原创 【C语言】多文件编程以及static关键字
在上面文件中,我在AddA_B.c文件中 int add(int a,int b)前面加上static,重新编译就会报错,主要就是我将AddA_B.cw文件中函数通过。extern主要用于声明外部变量或函数,当我们将一个变量或函数声明为extern时,那么就表示该变量或函数是在其他地方定义的,我们只是在当前文件中引用它。-g 后面存放需要编辑的文件名称,头文件无法加进去,多个文件用空格隔开,默认编译生产的可执行文件名称为a.exe,可以通过后面加-o 修改文件名。,且无需添加头文件(放函数声明的头文件)。
2024-03-23 11:55:41
1096
原创 【PLC】施耐德PLC数据采集经验总结-TSX系列
施耐德,品牌就不介绍了,今天主要了解其PLC系列产品, 耐德PLC系列比较多,大公司,比较有钱,收购较多PLC厂家,导致PLC型号、编程软件过多。目前我见过的有施耐德TSX系列,Modicon M218系列,其中施耐德TSX已停产多年,该文章主要介绍TSX系列采集的相关资料,仅供参考M218系列可以看这篇文章。
2024-03-08 15:45:08
1706
原创 【PLC】施耐德PLC数据采集经验总结-Modicon M218
该文章主要介绍Modicon M218采集测试过程,以及查到的一些资料验证过程。
2024-03-08 15:30:28
1972
原创 【C语言】printf()函数
代码解释:%d、%f:格式字符,将输出的数据转换为指定的格式输出,格式说明是以“%”字符开始,d表示十进制,f表示小数,注释,不影响程序的运行,该段代码不执行。添加注释主要是为了便于程序的理解和阅读。C语言有两种注释方法,后面不加输出列表则原样输出。例如:printf("大家好");控制台直接输出“大家好”要指定浮点数的小数位数,可以使用.nf或者%.*f这样的格式化字符串。需要注意:所有标点符号均是在英文半角的前提下。2.2、printf()函数实例。2.3、控制浮点数的输出格式。\n :用于进行换行。
2024-03-02 15:58:03
485
原创 MCGS上传组态工程
在工业数据采集项目中,我们需要采集设备数据,但是针对一些年限较长的老旧设备,设备厂家可能倒闭或者联系不上,此时客户无法提供点位表,这种情况下针对有触摸屏的设备,我们可以考虑通过上载人机界面触摸屏程序,分析触摸屏程序的方法获取设备的点位表,本文主要介绍MCGS触摸屏该品牌的上载程序也就是组态工程的方法。
2024-02-28 22:41:49
3004
原创 【C语言】编程环境搭建-gcc编译
开发环境搭建,学习C语言,为了便于后期学习linux开发(嵌入式),在windows下模拟开发习惯,用Notepad++编写程序,采用gcc工具编译。修改notepad++中的设置新建默认语言为C语言,编码格式默认中文,也就是GB2312。修改后需要重新打开,重新写代码,不然修改后可能不生效。3、测试输出中文编译成功,但是运行exe程序出现乱码。不加-o,默认生成的是a.exe文件。2、安装gcc代码编译工具。4、C语言基本程序框架。
2024-02-28 22:39:43
436
原创 【Node Red 】 mysql数据库节点介绍
在之前工作项目中,有这样的项目需求:比如一台自动化设备,内部控制器支持mdobus TCP协议,我们需要与该设备进行数据通讯,采集设备内部生产工艺数据,并将数据传给第三方平台。
2024-02-28 14:24:48
2064
原创 【机床】西门子机床DNC程序上下载
数据传输使用ssh,并且和使用和ssh相同的认证方式,提供相同的安全保证.该协议是研究840Dsl时发现的,通过该协议同样可以进行文件传输,其余机床不清楚.该方法从840D开始就开始运用,实现的要求低,不区分数控系统版本,只要是配置了PCU50就可以实现,由于程序不是传入NCK中,无法直接调用,需要EXTCALL指令.第一种就是FTP协议,这种目前了解840Dsl和828D是支持的,其余机床待研究.三菱部分机床也支持FTP协议,FTP是基于TCP协议之上的具有C/S架构的。,通过FTP进行文件传输.
2023-12-13 22:29:30
1368
1
原创 通过docker部署nodred报错,无法进入nodered web页面
主要问题是系统系统端口被占用,导致不能通过该端口进入页面,类似的还有通过docker部署其他服务,出现上面错误,大部分都是端口被占用,可以尝试重启Windows的NAT网络。nodred通过docker安装部署之后,我这边是通过docker Desktop软件进行启动,出现下面的报警弹窗,无法进入nodered管理页面,(注意使用管理员权限启动CMD命令窗口,否则会出现拒绝访问)
2023-12-11 09:02:26
1232
1
原创 树莓派2:在树莓派通过docker安装Node RED
1、安装docker环境,这里不做过多介绍,前面文章有介绍,其余系统安装node RED也是一样的。打开浏览器,访问http://127.0.0.1:1880 就能够进入Node-RED的操作页面了。5、注意:该命令启动后,关闭终端就会关闭容器,如果需要容器后端运行,需运行下方指令。需要先关闭以前的容器,并保证1880端口不被占用。由于docker hub限速的原因,可能会下载的比较慢,2、下载Node-RED的官方docker镜像。4、执行命令后,控制会打印以下日志。3、下载完成后,执行以下命令。
2023-10-20 11:40:40
369
1
转载 什么是docker ,docker的优势是什么,有什么作用
你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。优点:确保了不同机器上跑都是一致的运行环境,不会出现我机器上跑正常,你机器跑就有问题的情况。:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包。容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。
2023-10-10 20:19:03
173
1
原创 标准ASCII编码表
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代美式英语,并等同于国际标准ISO/IEC 646。ASCII首次发布于1963年,后经数次修订,1986年定型最终版本使用至今。ASCII编码范围0x00-0x7F,即十进制的0-127,定义了128个单字节字符,其中包含95个可打印字符(数字、字母、符号),以及33个控制字符(下表中文描述的字符)。标准ASCII编码表。
2023-09-04 16:41:23
4605
1
原创 树莓派笔记01--如何在树莓派上安装Docker
在开始安装Docker之前,首先,需要确保树莓派已连接到互联网。这个命令将自动从官方Docker仓库下载并安装最新版本的Docker。安装Docker后,需要启动Docker服务。”消息的输出,那么恭喜您成功安装并测试了Docker。安装Docker非常简单。
2023-09-04 16:38:45
3600
1
原创 西门子plc变量存储器VB、VW、VD区别
2. VW存储器(Word Memory):VW是指字存储器(Word Memory),用于存储和操作多个位组成的字数据。一个VD存储器单元可以存储32个位(双字),它可以用于存储更大范围的数据,如长整数、浮点数等。综上所述,VB存储器用于存储和操作单个字节,VW存储器用于存储和操作多个位组成的字数据,VD存储器用于存储和操作更长的数据,如双字。存储器(Bit Memory),用于存储和操作字节,每个VB存储器只占用占用一个字节,8个位,例如:VB5,对应V5.0~V5.7.总的来说,vb是字节8个位。
2023-07-09 21:58:04
41197
1
原创 【机床】西门子机床系统各时间数据查看
大家好,在做机床数据采集项目,刚接触西门子机床的小白,基本不清楚机床的操作,这里的话针对一些时间相关的数据在机床面板的具体位置做一些介绍。在这里我们可以看到 零件总数、零件数、总运行时间、程序运行时间、进给时间、缺省设置后的启动时间、冷启动时间,等等时间相关的数据
2022-11-09 15:31:58
4811
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人