- 博客(99)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 ESP32 分区表修改导致重启的问题
在开始的产品,使用的一直是默认4M的ESP32-WROOM-32D这个模块,代码的分区也是3M给App, 960K给SPIFFS;代码逻辑啥的都没动过,后来模组换成了8M,那就打算把后4M也用起来,原本是一个比较简单的操作,也就是修改分区表,编译进去即可,但是发现修改之后,ESP32不断重启,这有问题,我是用的是4.4.1做的Arduino框架,platformIO编译。在platformIO中,加载自定义分区表的方法是使用关键字+路径的方法。
2022-11-11 15:23:45 1750 8
原创 LPC5528使用记录(一)
LPC5528是NXP的一款主流MCU,属于LPC55S2X/LPC552X系列,是新型的Cortex-M33内核,拥有512KB的Flash和256KB的SRAM,主频可以达到150MHz,并且拥有非常丰富的外设资源以及对应强悍的DMA支持,具体的之直接看MCU手册了。
2022-10-11 10:40:34 884
原创 ESP32 S3 vscode+idf搭建
一开始不熟悉,所以给他们上图,做了标记,我用的USB转串口来下载,需要外接USB转TTL模块,接TXRXGND,有电源供电就行。选择自己需要的IDF版本,一般我都选择最新的,后面其实也可以更新,按自己需求来就可以。注意下载前,需要先按住boot,然后按下复位,让ESP32进入下载模式,然后松开,否则就会这样。并且点击安装,我的已经是安装完了。下载完成后,按下rst复位,程序就可以跑起来了。这里有丰富的例子,你喜欢选哪个就哪个,我选择blink。按下F1,输入IDF,找到“配置ESP-IDF插件”...
2022-07-21 11:02:26 3454 3
原创 vscode+platformIO开发STM32(七)
最近可能太忙了哈哈哈哈,没时间写博客,不过看到不少朋友私信问我这个platformIO怎么设置偏移地址,那我就抽时间写一下简单的教程。如果熟悉makefile的编译环境,那一定会和.ld这个文件打交道,这是一个link文件,在keil/IAR上是直接设置偏移、内存的,所以长时间依赖keil/iar也许就不太了解这个。.ld实际也是一个描述文件,文件内容有特殊的关键字来描述,这里就不相信解释了,作用:在pio里面,如果按照我前面的工程这样建立,它就会使用默认基础的.ld文件,好的我自己也没发现原始的在哪,不过
2022-06-07 23:37:55 1193 7
原创 GRBL学习(八)
经过一些列对GRBL的认识,还有对vscode+platformIO的学习之后,已经成功移植好一个基础版本,后续还要继续优化和改造这个项目。兴趣的可以一起改造它,当然肯定也有别人已经做了这些事了。这里放出我的仓库链接:https://github.com/solawc/Open_GRBLOpenGRBL只是出于个人喜好,从原本GRBL的基础上进行了移植,将它移植到32位单片机上,为了快速,就选择生态链比较好的STM32来进行移植,单事实上并不仅仅只有STM32才可以,只要具备以下条件都可以运行GRBL:具
2022-06-01 22:52:37 2641 4
原创 vscode+platformIO开发STM32(六)
vscode+platformIO开发STM32前言FreeRTOS的FPU问题前言果然不动就没问题,一动问题还挺多。。。FreeRTOS的FPU问题FPU是一部分MCU自带的硬件浮点运算功能,开启硬件浮点后,运算速度可以加速。本人在做的是运动控制类,时常需要和浮点数打交道,在之前使用的STM32G0系列MCU,属于Cortex-M0+,它并不是带有FPU,因此在移植FreeRTOS、DSP库(软件)的时候,并没有遇到很多问题,更多的是直接依赖stm32cubeMX的自带的东西直接使用。但是在我将M
2022-04-05 00:39:55 2128 5
原创 vscode+platformIO开发STM32(五)
vscode+platformIO开发STM32前言FreeRTOS的路径问题前言一堆堆的项目导致一直忙忙碌碌,项目才是实战的真理哈哈哈。在持续使用vscode+pio的方式开发STM32的时间里面,也肯定不是一帆风顺,总会遇到很多奇奇怪怪的问题,不过吧遇到了就记录下来,以便后面再遇到或者有朋友遇到了,也能找到个解决办法或者提供一些解决思路。FreeRTOS的路径问题之前的话,我一直将FreeRTOS当作一个固定库来使用,因此再pio的目录下,我将FreeRTOS的文件夹放在lib的文件夹下面,通过
2022-04-04 17:18:11 998
原创 vscode+platformIO开发STM32(四)
vscode+platformIO开发STM32前言FreeRTOS的添加STM32CubeMX生成FreeRTOS移植FreeRTOS进入PIO工程下头文件路径程序移植demo前言在有一个完整的、可编译、可下载、可调试的单片机工程后,是否还有用到RTOS的场景,RTOS在嵌入式系统中占据重要地位,太多的应使用裸机+状态机的方式,即使当时能满足需求,但后面需要修改裸机、添加功能,就真的很难了。之前说过PIO本质上可以直接当作一个makefile,里面添加的东西几乎无异。FreeRTOS的添加STM3
2022-01-14 10:02:36 1827 1
原创 vscode+platformIO开发STM32(三)
vscode+platformIO开发STM32前言编译文件/库指定指定源文件夹指定库文件夹指定编译板卡编译配置配置全局宏配置头文件路径配置编译优化等级输出map指定库的版本前言在搭建好一个可编译、可调试的环境之后,当然是开始配置调试信息了。PIO本身也是使用GCC的编译工具链来进行编译,所以很多编译配置,实际上和makefile是一样的,只是它有了更明确的名字标志。事上PlatformIO的插件有非常详细的说明文档编译文件/库指定可以在[platformio]里面设置指定源文件夹src_dir
2022-01-14 09:20:57 2669 2
原创 vscode+platformIO开发STM32(二)
vscode+platformIO开发STM32前言PIO的.platformio结构packagesplatforms重定向board文件夹构建JSON前言在前面已经描述如何建立基本的PIO工程,但STM32F407VET6是默认有的,如果我需要STM32G0B0CE呢?或者STM32F429的呢?难道只换一个名字就可以了?不存在的。因此当然需要搞明白它是如何连接过去的。PIO的.platformio结构在安装好pio插件后,在C盘这个位置,会有一个这样的文件夹进来之后,会有如下的文件夹:
2022-01-11 01:07:11 2016 1
原创 vscode+platformIO开发STM32(一)
vscode+platformIO开发STM32前言建立platformIO的工程下载安装vscoed安装platformIO插件建立项目开始编译获取.bin文件前言忙忙碌碌一个多月,也终于有时间开始搞自己的东西了,换句话说又快要过年了,一年过去了感觉学了不少东西,又觉得没啥学到哈哈哈,实在是惨案。然后事情是这样的,最近用新的keil,竟然经常无故闪退,我是好气愤;在我下载好IAR之后,竟然新版的雷锋也没招了,当然我也找到了新的雷锋,但我觉得这并不是我想要的。那是否有一款软件,能让我编写、编译、下载完全
2022-01-11 00:47:33 8049 5
原创 GRBL学习(七)
GRBL学习最后我还是断更了一段时间哈哈哈哈。nuts_bolts.c/.h#define MAX_INT_DIGITS 8 // Maximum number of digits in int32 (and float)// Extracts a floating point value from a string. The following code is based loosely on// the avr-libc strtod() function by Michael Stump
2021-10-17 23:46:09 1599 1
原创 问题记录----CH340(二)
问题记录-----CH340G说起来这不是我第一次遇到问题了,关于CH340的问题,之前也有提过:https://editor.csdn.net/md/?articleId=118356898但是吧,这次就不是出自CH340的问题了。事情是这样的,原有一个设备,依赖的串口与上位机进行控制,上位机会根据应答发送指令给主板,主板会根据相应的指令做相应的事情,其实是一个很简单的过程,保证好通讯正常,执行正常,本应该没啥问题。但问题偏偏会出现,由于使用串口调试,那必然少不了类似于CH340这种模块做转接,但是
2021-08-29 20:01:29 3277 3
原创 问题记录----CH340
问题记录-----CH340G与CH340C一、描述一下CH340这个东西用过51\32这些开发板都应该知道,CH340是一个USB转串口的芯片,是很常见的。以前主要看到的是CH340G这个芯片,事实上人家厂商并不只有CH340G,还有CH340C\N\B\T\K\E,这一堆堆的,主要功能还是USB转串口,只有一些小的特殊不一样,例如封装、是否带EEPROM、是都有3.3V输出、是否支持红外通讯等等。封装形式如下:不同封装有不一样的引脚功能提供。二、问题在研发中,客户定制了一款小型主板,由于板
2021-06-30 11:40:55 4481 5
原创 电磁兼容(八)
`电磁兼容的PCB设计电磁兼容的PCB设计谐振旁路/退耦Z5U和NPO电磁兼容的PCB设计谐振我们在使用一些的芯片的时候,在设计电路上,会在芯片的VCC引脚加入一个0.1uF的电容,因此如果上心的人应该会提出一些疑问,如:这0.1uF的作用是什么?为什么是0.1uF而不是10uF或者0.001uF?如果不加这个,会有什么后果?反正我在学习的时候,就产生过这些疑问,而我也是带着这些疑问去学习的。谐振前面已经了解过了,它是通过RCL三者共同造成的震荡效果,这个震荡事实上并不一定是不好的,有时候
2021-06-15 00:46:43 460
原创 ESP32自动下载电路
ESP32自动下载电路设计记录ESP32下载分析ESP32作为很火的一款国产wifi+蓝牙芯片,终于我也要用上了。对一些硬件上的问题也做一个记录,因为一般自己DIY的话,硬件当然也就自己设计了。ESP32的硬件设计,当然从下载开始。如果直接用ESP32现成的模块,那真的省心很多,毕竟好多东西人家都帮你做好了。先从下面的图开始看,ESP32的启动模式如下,事实在模块上还有一个EN引脚。其实真正起作用的,是GPIO0和GPIO2,EN这个事实上是内部一个电源使能引脚。[外链图片转存失败,源站可能有防盗
2021-05-04 04:43:16 6319 3
原创 ESD静电学习
ESD静电学习ESD静电学习什么是ESD静电释放ESD工作电压ESD电压曲线ESD极性配置IEC 61000-4-2标准ESD标准:人体模型(HBM)ESD标准:带点装置模型(CDM)ESD标准:IEC 61000-4-2标准ESD静电学习什么是ESD静电释放关于静电,其实并不陌生,从中学物理中也能得知,例如皮肤在摩擦中,会产生大量正电荷,,这堆正电荷如果靠近另外一个导体,电子就会大量转移,在这个高速转移的过程中,就是ESD静电释放;冬天毛衣等等,其实都是静电释放的过程。ESD工作电压ESD电压曲
2021-04-19 21:50:54 1400
原创 ESP32_LVGL遇bug记录---label显示bug
ESP32 - LVGL_V6功能更描述要实现的功能其实很简单,就是获取6个矢量坐标之后,通过计算转换成三维X/Y/Z的坐标点,通过labei的空间进行计算。由于跑的是FreeRTOS,因此对于坐标获取的部分,我单独新建一个线程去获取计算,并显示。遇到的现象神奇的是,我获取到计算的值之后,直接用于显示,逻辑上检查过很多次并没有问题,但是却会出现重启。而串口上只能看到一堆回溯用的地址,但我没有回溯查询的工具,而且用起来很麻烦,但也很容易定位到某个函数。事实上更新的函数是这3个但为什么频繁去执行这3
2021-04-07 02:03:37 2608 5
原创 GRBL学习(六)
GRBL学习motion_control.c/.h#ifndef motion_control_h#define motion_control_h// System motion commands must have a line number of zero.#define HOMING_CYCLE_LINE_NUMBER 0#define PARKING_MOTION_LINE_NUMBER 0#define HOMING_CYCLE_ALL 0 // Must be zero.#
2021-04-05 19:55:00 2557 1
原创 电磁兼容的PCB设计(七)
`电磁兼容的PCB设计叠层设计叠层设计原则电源层、地层、信号层的层叠方案器件的划分和布局信号布线与回流叠层设计叠层设计原则结合电源种类、 平板分割、 信号走线路径、 信号层隔离以及 EMC 的设计要求, 合理评估信号层、 电源层和地层的数量。对于多个电源平面, 应增大平面之间的间距以减少相互之间的耦合干扰, 进而通过减少辐射的电磁波以降低 EMI 干扰。减小 电 源平 面 和 地 平 面 之间 的 距 离 以 增 强 两平面之间的耦合, 尽量将两平面相邻排布并尽量靠近,充分利用二者的耦合电容来降
2021-03-08 12:38:59 523 2
原创 问题记录:STM32F1XX使用FSMC模拟8080出现的问题
STM32F1XX使用FSMC模拟8080出现的问题问题一、FSMC模拟8080时许的用法关于8080时许二、FSMC模拟8080后在示波器钟看到严重尖峰三、尖峰出现的原因以及处理方法1、检测电源是否不稳定2、检查阻抗是否匹配得上3、检查信号是否出现扭曲解决方法问题一、FSMC模拟8080时许的用法关于STM32F1模拟8080时许,其实在很多的教程上都有说,例如野火的教程。所以从本质上来说,首先需要知道为什么FSMC能够模拟8080时许,而不是FSMC直接产生8080时许。关于8080时许808
2021-03-01 00:17:11 1235 4
原创 GRBL学习(五)
GRBL学习grbl.h#ifndef grbl_h#define grbl_h// Grbl versioning system#define GRBL_VERSION "0.9j"#define GRBL_VERSION_BUILD "20160726"// Define standard libraries used by Grbl.#include <avr/io.h>#include <avr/pgmspace.h>#include <avr/
2021-02-21 02:22:51 2334 3
原创 ESP32_Arduino_TFT_eSPI的使用记录
ESP32_Arduino_TFT_eSPI前言前言貌似在国内,使用Arduino的框架方式去开发某个项目并不流行,看起来在使用单片机开发的时候,都是自己从底层开始
2021-01-27 00:46:22 9097 1
原创 GRBL学习(四)
GRBL学习gcode.c/.h是的没错,不管是打印机还是雕刻机,最终都是需要一个已经切片好的模型或者图片来进行打印,此时核心的过程就是Gcode的解析过程。所以这两个文件简直就是grbl的心脏。可以先从头文件看起:开头先是将常用的Gcode定义了一便,事实上不止这几个。// Define modal group internal numbers for checking multiple command violations and tracking the // type of comman
2021-01-21 01:36:45 3067
原创 GRBL学习(三)
GRBL学习coolant_control.c/.h这个文件比较简单,从名字上看是控制冷却,但冷却这个在GRBL上显得格外奇怪。事实上在3D打印上冷却会听得比较多,因为挤出头在不挤出时候,还在高温的话,容易造成挤出头损坏。但CNC不一样,它不是加热的,他是激光类型的。从源码上简单看:void coolant_init(){ COOLANT_FLOOD_DDR |= (1 << COOLANT_FLOOD_BIT); #ifdef ENABLE_M7 COOLANT_MI
2021-01-21 00:59:50 3059 1
原创 GRBL学习(二)
GRBL学习config.h文件从文件的开头可以得知,这个文件是用来针对不同机器进行配置的。对GRBL来说,如果进行主板的更换,使用2560或128P这些芯片的话,直接忽略这个文件的配置。但我用的并不是这个、、EEOROM重置后时后使用默认配置#define DEFAULTS_GENERIC波特率#define BAUD_RATE 115200使用的Arduino芯片#define CPU_MAP_ATMEGA328P // Arduino Uno CPU针对GRBL的命令解析字符
2021-01-21 00:39:06 4118 1
原创 ESP32_Arduino
ESP32_ArduinoESP32 GPIO的配置从乐鑫官方提供的手册来看,ESP32的GPIO基本上是通用型GPIO,也就是除了几个引脚特殊之外,基本上每个引脚都可以使用复用为各种功能,比如SPI/I2C等等。请注意,GPIO6-11通常用于SPI闪存。GPIO34-39只能设置为输入模式,没有软件上拉或下拉功能。还提供了单独的“ RTC GPIO”支持,当GPIO路由到“ RTC”低功耗和模拟子系统时,该支持便起作用。这些引脚功能可在以下情况下使用:在深度睡眠中在超低功耗协
2021-01-18 09:42:39 916
原创 GRBL学习(一)
GRBL学习GRBL的介绍Grbl是用于CNC铣削的基于并行端口的运动控制的不折不扣,高性能,低成本的替代产品。只要运行Atmega 328,它将在Arduino(Duemillanove / Uno)上运行。该控制器采用高度优化的C语言编写,利用AVR芯片的所有巧妙功能来实现精确的定时和异步操作。它能够维持高达30kHz的稳定,无抖动的控制脉冲。它接受符合标准的g代码,并且已通过多种CAM工具的输出进行了测试,没有任何问题。完全支持弧,圆和螺旋运动,以及所有其他主要g代码命令。不支持宏函数,变量和
2021-01-18 02:21:55 20896 1
原创 ESP32编译环境的搭建
ESP32编译环境搭建ESP32一、资料参考二、文件准备三、编译ESP32一、资料参考官方资料 http://esp-idf.readthedocs.io/en/latest/二、文件准备其实官方的文档写得很详细,但是感觉可能过于详细,看起来其实也很费时间,我的使用环境是在windows下,而介绍文档中包含有linux和MAC_OSX,所以会直接略过直接看windows。按照提示,先进入快速入门的页面,并且找到下图的位置:先确定好自己使用的ESP32是哪一块,我使用的是ESP-WROVER
2020-10-25 23:15:52 2361 2
原创 volatile的含义以及用法
volatile的含义以及用法前言volatile的定义作用前言前几天被问了到了volatile这个问题,说实在话我对volatile其实仅仅局限于理解成防止被编译器优化的层面,却不知道它实际上需要真正应用到什么样的场合,因此昨天对volatile进行重新学习了一次,也决定写下来记录一下。volatile的定义volatile是一个特征修饰符,在编译器上是一个关键字,就跟static、const一样。它最终的目的就是防止需要执行的这条指令被编译器给优化掉了。volatile的变量是说这变量可能会被意
2020-09-09 10:28:17 1089
原创 捡起MATLAB的第(10)天
捡起MATLAB的第十天Matlab摄像头照片获取摄像头开启代码格式配置获取图像关掉摄像头关于问题Matlab摄像头照片获取摄像头开启代码摄像头开启的语句:obj =videoinput('DeviceName',1,'YUY2_640*480');DeviceName是你的可用的音视频输入设备。“1”表示打开的设备。YUY2_640*480表示一种格式。格式配置set(obj,'ReturnedColorSpace','rgb')配置格式为RGB格式。previe
2020-09-01 02:12:32 334
原创 计算机组成原理day6
计算机组成原理机器指令指令的一般格式指令字长机器指令机器指令,指的的是一条机器语言的语句。全部的机器指令的集合,称之为机器的指令系统,因此机器的指令系统集中反应了机器的功能。指令的一般格式操作码:用来指明该指令的操作,如加、减、乘、除、位移等。操作码的长度可以说固定的,也可以是变化的。固定的操作码:将操作码集中放在指令字的一个字段内,这样可以便于硬件设计、指令译码时间短。不固定的操作码:其操作码分散在指令字的不同字段中。地址码:用来指出该指令的源操作数的地址(一个或两个)、结果的地址以
2020-08-16 14:29:34 425
原创 捡起MATLAB的第(9)天
捡起MATLAB的第八天Matlab初识simulinkMatlab初识simulinkMatlab用的版本是***R2014a***,不同版本的simulink可能会有所差别,但是基本操作都大同小异。simulink其实就是个仿真工具箱,里面包含了很多调试、仿真的工具,从3D绘制、EDA仿真工具箱、信号、通讯工具箱等等、、简直了。。...
2020-08-16 01:29:00 312 1
原创 捡起MATLAB的第(8)天
捡起MATLAB的第八天Matlab一维线性插值一维插值命令method的方法举例1 — 插值法:举例2 — 插值法:Matlab一维线性插值一维插值命令%x:原始数据(自变量)n维向量%v:原始数据(函数值)n维向量%xq:插值(自变量)可以使一个点,也可以是向量%vq:插值结果(函数值)vq = interp1(x,v,xq)vq = intterp1(x,v,xq,method)method的方法2014a版本的matlab目前有这几种方法:举例1 — 插值法:实现脚本
2020-08-02 14:48:22 237
原创 捡起MATLAB的第(7)天
捡起MATLAB的第七天Matlab符号变量与极限符号变量极限求导积分Matlab符号变量与极限符号变量sym('var') %定义var为符号变量sym('var'. set) %设置为实数或正数sym('var'.dim) %定义var为符号矩阵syms var1 var2 ...varn %定义多个符号变量极限注:matlab中默认自变量为x;求导积分...
2020-07-29 00:17:30 209
原创 捡起MATLAB的第(6)天
捡起MATLAB的第五天Matlab三维曲线绘制三维曲面绘制标准三维球面绘制Matlab三维曲线绘制plot3(x,y,z,s) plot3(x1,y1,z1,s1,x2,y2,z2,s2)三维曲面绘制mesh(x,y,z,c) %绘制三维网格图surf(x,y,z,c) %绘制三维曲面图注:c是color(颜色)meshc(x,y,z,c) %绘制三维网格图(带等高线)meshz(x,y,z,c) %绘制三维网格图(带底座)标准三维球面绘制[x,y,z] = s
2020-07-28 23:16:26 171
原创 捡起MATLAB的第(5)天
捡起MATLAB的第五天Matlab二维曲线绘制图形窗口分割线性直角坐标图对数坐标图极坐标图Matlab二维曲线绘制plot()函数plot(x,y) %x为横坐标,y为纵坐标ploy(y) %序号作为横坐标,y作为纵坐标plot(x,y,s) %s表示输出样式常用的图形修饰命令图形窗口分割subplot(m,n,p) %把当前窗口分成m*n个绘图区,p代表序号如:subplot(2,2,1)subplot(2,2,2)subplot(2,2,3)sub
2020-07-21 05:39:41 255
原创 捡起MATLAB的第(4)天
捡起MATLAB的第四天Matlabif的使用switch的使用输入语句输出语句for循环while循环break与continueMatlabif的使用if 条件esleif 条件....else endswitch的使用switch 变量 case 条件1 执行任务1 case 条件2 执行任务2 .... otherwise 执行别的end输入语句X = input('message') %输入数据格式X = inp
2020-07-21 01:49:00 266
原创 捡起MATLAB的第(3)天
捡起MATLAB的第三天Matlab获取矩阵尺寸特殊矩阵矩阵翻转逆矩阵与伪逆矩阵矩阵的秩矩阵的迹矩阵的特征值与特征向量Matlab获取矩阵尺寸使用的命令:size(x);返回 a行 b列矩阵特殊矩阵once() %全1矩阵once() %n*n的全1矩阵once(m,n) %m*n的全1矩阵zeros() %全0矩阵zeros(n) %n*n的全0矩阵zeros(m,n) %m*n的全0矩阵eye(n) %n*n的单位矩阵矩阵翻转
2020-07-20 00:59:52 285
原创 计算机组成原理day5
计算机组成原理输入输出系统输入输出系统的不同阶段1、早期阶段2、接口模块和DMA3、具有通道结构的阶段4、具有I/O处理机的阶段输入输出系统的组成I/O软件I/O硬件I/O设备与主机的联系方式常见的IO设备的控制方式输入输出系统这是计算机的三大模块中的第三个模块,输入输出模块,也称为输入输出系统。重点学习:I/O设备与主机交换信息的三种控制方式相应接口功能和组成学习几种常用的I/O设备输入输出系统的不同阶段1、早期阶段特点:每个设备都必须配有独立的逻辑电路与CPU相连,用来实现I/
2020-07-19 17:29:39 267 1
RT1052_emwin.zip
2020-08-30
protuesADC083X补丁.zip
2020-03-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人