自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 唯创知音WTN6040 ESP32 使用RMT外设驱动

前期在这篇文章中介绍了驱动 WTN6040 的原理及demo,使用的是延时方案,实际测试后发现这种方式偶尔会延时不精准,导致功能异常,于是就有了下面这种方式 —— 使用 ESP32 原生的 RMT 外设更精准的控制时间。

2023-04-13 21:55:09 459 1

原创 Altium Designer 20 导出 Gerber 制造文件流程及注意事项

设置原点:在Edit菜单中选择Origin-Set (快捷键E-O-S)定好原点,一般放在左下角附近即可。放置分孔图表:在Place菜单中选择String放置“.Legend”(快捷键P-S)在DrillDrawing(分孔图层),位置在板子右边或上方。输出Gerber:在File菜单中选择Fabrication Outputs-Gerber Files,输出Gerber。有两点需要注意a. 层选项:绘制层选择所有使用的,镜像层选择全部去掉,右侧栏全不打勾;b. 钻孔图层选项:如下图选择。

2023-04-13 20:55:23 3632

原创 一种LCD屏闪问题的调试

项目使用ESP32-S3 RGB接口驱动的LCD,框架 idf-v5.0, LVGL-v7.11显示画面正常, 但肉眼可见的像是背光在闪烁, 背光电路是应用很久的经典电路, 且排查背光驱动无错,但开机一段时间后, 闪烁会明显减轻。

2023-03-23 15:54:02 2260

转载 ESP32烧写报错 DETECTED OVERLAP AT ADDRESS: 0X8000

使用 esp-idf_v4.3 框架编译工程无错误,但是在烧写时出现以下错误。

2022-10-19 14:37:47 820

原创 STM32使用PWM+DMA方式驱动WS2812灯珠

WS2812 内部集成了处理芯片和3颗不同颜色的led灯(红,绿,蓝),通过单总线协议分别控制三个灯的亮度强弱,达到全彩的效果。

2022-10-19 14:28:25 5206 3

原创 解决ESP8266、ESP32系列芯片烧录报错:A fatal error occurred: MD5 of file does not match data in flash!

解决ESP8266/ESP32系列芯片烧录报错:A fatal error occurred ...

2022-10-12 17:15:45 5045 1

原创 C语言,fscanf()函数,uint8_t的占位符是%_?

正文对数据的拆分使用合适的格式化输入函数是个不错的选择,如scanf(), fscanf() …但当变量是 uint8_t 类型时,占位符用%d会报错,解决方法格式化输入数据到 uint8_t 型变量,其他同理,#include <inttypes.h> //需要包含这个头文件int main(){ FILE *fp; uint8_t num = 0; fscanf(fp, "%" SCNu8, &num);}而打开inttypes.h文件,你会发现SCN

2022-10-12 16:37:06 1083

原创 唯创知音WTN6040 esp32驱动代码

WTN6040音频芯片使用记录

2022-09-05 10:05:53 774

原创 FreeRTOS新建任务不执行问题解决办法

FreeRTOS新建任务不执行问题解决办法

2022-06-21 10:32:53 3771 2

原创 使用Windows批处理文件递归删除当前路径下的指定文件夹

背景最近在备份ESP32工程的时候发现工程占用的体积巨大,看了一下是编译生成的build文件夹占用较多,大约200MB左右;心想着可以写一个小工具在备份前把所有工程下的build文件夹批量删除,本着作为一个搞技术的,能让计算机干的活绝不浪费人力的理念就出现了下文方法环境操作系统:Windows10ESP32编译环境:esp-idf v4.3方法由于是在Windows系统下,使用*.bat批处理文件解决就很方便创建一个文本文档并打开复制下面这段代码并粘贴到此文档,保存并关闭

2022-06-13 23:12:27 2487 3

原创 Win10解决COM口大量在使用中问题的方法

1. Windows+R 输入cmd回车2. 输入regedit打开注册表编辑器3. 进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter4. 删除ComDB文件5. 打开设备管理器,扫描硬件改动就可以了,若还是不行则重启计算机...

2022-04-29 18:14:49 2157

转载 C语言中,数字后面带U,L,F的含义

一、简单说明U表示该常数用无符号整型方式存储,相当于 unsigned int L表示该常数用长整型方式存储,相当于 longF表示该常数用浮点型方式存储,相当于 float这些后缀跟是在字面量(literal,代码中的数值、字符、字符串)后面。二、用于说明数据类型数值后面加“L”和“l”(小写的l)的意义是该数值是long型。详细如下:5L的数据类型为long int。5.12L的数据类型为long double。数值后面加“U”和“u”的意义是该数值是unsigned型

2022-04-27 19:11:33 10858

原创 记录嵌入式中一种对__DATE__, __TIME__宏记录的日期时间转换为数字格式的方法

一种对编译日期和编译时间拆分为整型数字的方法

2022-04-27 18:48:39 603 1

原创 LVGL学习笔记

LVGL 入门级参数配置

2022-03-31 21:40:25 4028

原创 LVGL学习之初始化和屏幕旋转

背景手里有一块ESP32-S2-HMI-DevKit-1开发板,是乐鑫基于ESP32-S2模组开发的HMI人机交互方案开发板;一边学习ESP32开发的过程中,也顺带学习一下LVGL图形库;遇到的第一个问题:官方提供的例程都是横屏显示的,我想切换为竖屏显示,就这么简单。开发环境Windows 10VS Code + esp-idf-v4.3ESP32-S2-HMI-DevKit-1开发板正文1. 关于开发板的LVGL初始化首先,开发板Demo中的main函数里调用了lvgl_init

2021-12-18 19:32:20 11116 8

原创 ESP8266开发环境搭建(Windows)

ESP8266开发环境搭建文章目录ESP8266开发环境搭建一、下载ESP8266_RTOS_SDK源码(1)推荐方式(2)官方方式二、下载预制编译环境和工具链三、添加工具链路径四、编译测试一、下载ESP8266_RTOS_SDK源码(1)推荐方式这里使用了徐宏大佬同步到gitee 的乐鑫仓库,下载速度快一些,先不拉取子模块,git 指令如下: git clone https://gitee.com/xuhongv/esp-idf.git记事本打开.gitmodules,全部替换为下

2021-12-11 22:49:34 1542

原创 Windows端查看局域网内其他设备已使用的IP

1. 打开命令提示符“Windows键” + “R” 或 右键点击左下角开始按钮,选择运行,输入“cmd”并回车;2. 查看本机IP输入ipconfig并回车;3. 使用ping指令遍历局域网其他IP输入指令 for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.1.%i,回车并等待;注意:末尾的192.168.1.%i,要根据第2步查看到的本机IP决定,如果你的本机IP是192.168.0.12,那么这个指令的后缀就是192.168.0.%i

2021-11-28 00:53:16 19054 2

原创 Ubuntu20.04 配置esp-open-sdk, make是出现错误configure: error: could not find bash >= 3.1

解决办法打开../esp-open-sdk/crosstool-NG/configure.ac这个文件,找到193行,内容如下:AC_CACHE_CHECK([for bash >= 3.1], [ac_cv_path__BASH], [AC_PATH_PROGS_FEATURE_CHECK([_BASH], [bash], [[_BASH_ver=$($ac_path__BASH --version 2>&1 \

2021-10-12 22:10:05 783

原创 记录向esp8266烧录程序后make monitor监视出现的错误

现象描述make flash烧录固件后,欲使用make monitor监视串口打印的数据,出现以下错误:I (46) boot: SPI Speed : 40MHzI (50) boot: SPI Mode : QIOI (54) boot: SPI Flash Size : 8MBD (57) boot: mapped partition table 0x8000 at 0x40208000E (63) flash_parts: partition 0 invalid magic number

2021-10-10 21:18:42 842

原创 Altium Designer 矩形开窗与异形开窗操作方法

前言众所周知,画PCB的时候,如果要在板子的某一个地方开窗(不盖油),要在Solder层填充对应图形;默认填充图形为矩形区域;本文为个人摸索的一点小技巧,方便实现任意不规则形状的开窗如有其他方法技巧,欢迎评论区留言,互相学习一、矩形开窗先简单说一下矩形开窗怎么操作在Solder层使用填充工具,画出指定大小的区域即可以Top Solder层为例:切换到Top Solder层选择填充工具画出想要的大小即可二、异形开窗同样也是在Solder层画出形状,重点在于之间的转换

2021-09-01 22:13:39 6477

原创 记录一种简便的提取IP字段转4个十进制数的方式

举例提取IP地址如192.168.0.1为四个数字191 168 0 1代码/* IP地址转4位数字 */void IpStr2Number(char *ip, int *num){ memset(num, 0, 4); sscanf(ip, "%d.%d.%d.%d", &num[0], &num[1], &num[2], &num[3]);}

2021-08-31 18:55:06 263

原创 KEIL添加作者注释模板

一、预览1. 文件头注释/*************************************************** * @brief something * @date 2021/08/31 * @author your name****************************************************/2. 函数头注释/*** @brief something* @param none* @return non

2021-08-31 18:42:28 1679

原创 VSCode插入头部作者信息注释

一、样例/* * @Author: William Zhang * @Date: 2021-08-24 23:04:04 * @Last Modified by: William Zhang * @Last Modified time: 2021-08-24 23:04:04 */#include <stdio.h>int main(int argc, char const *argv[]){ printf("hello world!"); r

2021-08-24 23:37:12 2338

原创 使用JLink Commander解锁已锁定的MCU

如题,记录一种解锁已锁定的MCU的方式方法打开J-Link Commander;输入unlock Kinetis,回车;像上图所示,出现OK字样就可以了

2021-08-24 18:25:55 1492

原创 C语言中assert()函数的用法总结

一、原型定义assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );二、作用assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序Untitled-1.c:#include <stdio.h&

2021-06-30 22:18:16 9181 5

原创 Keil编译报错[error: #101: “xxx_IRQn“ has already been declared in the current scope]解决办法

一、问题背景开发环境:Keil 5芯片型号:STM32F103C8T6库类型:HAL库移植大彩串口屏驱动代码时,编译出现大量error:#101 错误,如下:error: #101: "RTC_IRQn" has already been declared in the current scopeRTC_IRQn = 3, /*!< RTC global Interrupt */ error: #101: "FLASH_IRQn" has already been declared

2021-06-24 00:22:21 11850 7

转载 JLink提示错误信息read:@0x02000004

一、问题背景开发环境:Keil MDK v5.29使用JLink下载程序时,弹出错误提示窗:The firmware of the connected J-Link(S/N:20090928) does not support the following memory access:Read @ 0x2000004Flags:via AHB-AP.点击OK之后程序可以烧录进单片机,但每次烧录都会弹出这个窗口。二、原因经网上查阅,MDK 5.24之后的版本会出现这个问题三、解决办法使

2021-06-19 17:45:13 1454

原创 STM32调试程序停在 B . 处

STM32调试程序停在 B . 处问题描述调试STM32程序时,程序停止在 startup_stm32f103xb.s文件的B .处,如下图所示:原因程序卡死在 B . 处,说明有中断没有处理;比如,启用了某个类型的中断,但是没有对应的中断处理函数,则会出现这种问题;解决办法重点检查一下中断处理函数部分与中断使能部分的对应关系;情况之一:有可能在修改程序的时候不小心屏蔽掉了某个中断处理入口函数。...

2021-06-12 17:32:25 3971 4

原创 printf串口打印数据以及进阶调试用法

一、前言实现原理:在C库中,printf()等输出流函数都是通过fputc()这个函数实现的,所以我们通过重映射的方式,修改这个函数的定义使它输出在STM32的寄存器中,便可以实现使用printf()函数在STM32串口上输出数据的功能。二、printf串口打印实现1.使用LL库添加下面的fputc重定义代码://重映射fputc函数,此函数为多个输出函数的基础函数int fputc(int ch, FILE *f){ while (USART_GetFlagStatus(USART1,

2021-05-21 21:27:17 2696 1

转载 STM32使用HAL库,多串口接收一段时间后程序卡死

背景拟实现接收两个串口的数据,将两个串口的数据进行整合通过一个串口发送出去,功能很简单,但在实操中却遇到了接收一段时间后程序就卡死的现象解决方法在串口接收中断时开启接收错误中断void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){ if(huart->Instance == USART2) { HAL_UART_Transmit(&huart1, UART2_Rxbuf, 1, 1); // 把收到的字节原样

2021-05-14 14:22:10 2515

原创 几个常用的数据处理代码

整理几个常用的数据处理代码(C语言)字符转十六进制//字符转十六进制char Char_To_Hex(char ch){ char C ; if((ch >= '0') && (ch <= '9')) C = ch - 0x30 ; else if((ch >= 'A') && (ch <= 'F')) C = ch - 'A' + 10 ; else if((ch >=

2021-05-07 22:18:07 882

转载 常用的电源防反接电路总结

常用的电源防反接电路总结以下内容转载于芯片之家 ,作者胡世宏二极管防反接电路利用二极管的单向导电性,实现防反接功能,这种方法简单,安全可靠,成本也最低,但是输出端会有0.7V左右的压降,还有就是如果线路上的电流过大,比如有2A的电流,那么就会一直有1.4W的损耗,发热也非常大,而且,如果反向电压稍微偏大,并非完全截止,会有一个比较小的漏电流通过,使用时需要留足余量。PMOS管防反接电路简单说明原理,刚上电时,MOS管的寄生二极管导通,S级电压为VCC-0.6,G级为0,PMOS导通;当电源

2021-02-23 21:53:38 2819

原创 记一次更换大容量STM32芯片的Flash读写异常问题

记一次更换大容量STM32芯片后Flash读写异常问题背景由于项目的更新,主控芯片由RBT6更换为RCT6,系统的参数修改保存在片上Flash中,更换新板子之后,调试发现系统参数读取错乱;对系统参数进行修改,重新保存,发现一部分数据正确,一部分数据错误,多次尝试,现象一致;读取Flash的数据,查看对应地址保存的数据,是修改后保存的值;解决方法很容易定位,问题的关键在对Flash的操作;而两个板子最根本的变化在于更换了芯片;查阅资料得知,STM32F103RCT6的Flash一页为2kb;

2021-02-18 20:26:26 1831

原创 ST-Link能检测到单片机并且时有时无,无法烧录程序

背景自己做了一块板子,是基于STM32L0的,预留了SWD模式的调试接口。硬件搭好之后,准备烧录一段测试程序检查一下硬件,却始终无法烧录,弹窗Connot connect device 或者 internal command error,网上查找资料无果,困扰了好长时间。ST-Link是正版的,我也是第一次用ST-Link,之前一直用的J-Link。连了4条线VCC、GND、SWDIO、SWCLK。检查了连接与各项设置之后确认没有问题,于是改用J-Link烧录一下试试,发现烧录成功,这证明板子没有问题。

2020-11-09 21:36:54 3584 8

原创 使用AD20画PCB铺铜只有一个边框问题

如题,在使用Altium Designer 20画PCB时,进行覆铜操作,画好范围之后,结果覆铜区域只剩一个边框;具体原因不清楚,但有一解决办法:可右击这片覆铜区域,选择“覆铜操作” - “对选择区域重新覆铜”,即可解决此问题。希望知道这个问题原因的朋友可以分享一下经验 ^ ^...

2020-09-19 22:43:49 14429 5

原创 KEIL编译报错 Error: L6220E: Load region LR_IROM1 size (67044 bytes) exceeds limit (65536 bytes)...

背景:之前在做的一个项目使用的是64K内存的芯片,随着功能的更新,空间也渐渐不够用了,于是重新设计了板子,换了128K的芯片,并且keil工程的芯片类型也相对应做更改,一段时间之后,添加代码再编译出现了如下的错误:错误原因:实际上还是超内存了解决办法:第一步128K的芯片,下图红框处应该是图上所示的数据,有些版本的KEIL会在你更换Device时自动更改这个地方;而有些版本需要手动修改。第二步还有一个文件需要统一修改,点击Target - Linker - Edit…,会打开 STM32

2020-08-10 21:50:09 6900 1

原创 STM32 关闭所有中断

STM32 关闭所有中断如题,关闭或开启所有中断;代码如下:__set_PRIMASK(1);//关总中断__set_PRIMASK(0);//开总中断

2020-08-10 21:17:02 10692 2

原创 STM32F1 软件实现系统复位与检测复位标志位

STM32 软件实现系统复位与检测复位标志位1.软件实现系统复位嵌入式开发中,通过代码在某种条件下,如程序发生异常,实现系统复位;代码如下:*((u32 *)0xE000ED0C) = 0x05fa0004; //实现系统复位2.检测复位标志位程序复位后重新运行,通过检测上次复位是什么情况导致的复位来执行不同的操作;if (RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET) //上电复位{ //内容1}else if (RCC_Get

2020-07-18 19:22:57 2130

原创 识别电容、电阻的大小,那些电子元件上的103、104、105都是什么含义?

1.电容1.1 电容的单位换算关系常见的电容单位有:皮法(pF),纳法(nF),微法(μF);它们依次是递增的关系,1nF = 1,000pF;1μF = 1,000nF = 1,000,000pF;1.2 识别电容上的数字代表的大小【103】,即10 x 10^3皮法 = 10纳法;【104】,即10 x 10^4皮法 = 100纳法;【105】,即10 x 10^5皮法 = 1000纳法 = 1微法;计算方法:前两位数字代表有效数字,第三位代表10的n次幂(也可以理解为在有效数字后

2020-05-30 16:28:22 26376

原创 STM32备份寄存器的配置与使用

STM32备份寄存器的配置与使用前言嵌入式系统设计中,用来存储系统运行过程中的数据有很多种方式,而使用STM32的备份寄存器可以实现对少量数据的频繁存储。因为这种方式时将数据存储在RAM中,掉电则数据丢失,所以需要使用备份电源为芯片供电;也由于是在RAM中,理论上可以无限次存取。配置首先需要添加stm32f10x_bkp.c文件和stm32f10x_pwr.c文件添加到工程的库文件FWLib当中;其次在 RCC_Configuration( ) 函数中添加以下配置代码; /* Ena

2020-05-30 13:44:25 4191 1

PID光离子化原理 PDF文件

PID光离子化原理

2023-04-13

ESP32使用RMT外设驱动唯创知音WTN6040的关键代码,非工程

编译框架:ESP-IDF-v5.0 测试MCU:ESP32-S3 此为产品的功能之一,故仅上传使用样例和编码文件,不提供工程源码

2023-04-13

WTN6系列语音芯片资料v1.16

WTN6系列语音芯片资料v1.16

2022-09-05

空空如也

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

TA关注的人

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