MCU
文章平均质量分 58
【ql君】qlexcel
万物皆为比特
展开
-
Keil5把变量的数据导出,可视化
a[idx]是你想导出数组的名字,idx是你想导出数组的大小,idx不要超过你定义数组的大小,否则会出错。打开Debug里面的Function Editor (Open Ini File)…然后在Command下面的框中输入showdata(),然后点击回车。数组里面的数据就保存在你和你工程文件对应的地址下。把想要导出变量的数据存入数组中。然后点击Compile。点击data.log。转载 2023-12-16 11:36:50 · 2336 阅读 · 0 评论 -
使用fromelf把axf文件转换成elf格式
fromelf -h即可打印出帮助信息。原创 2023-01-02 16:57:13 · 3185 阅读 · 0 评论 -
GD32读保护解除
开启读保护后,jflash 可成功连接,但是什么也做不了。但是通过 Jlink Commander 是可以读写其寄存器的:最开始两个字节不是A5 5A,表示读保护开启。原创 2022-11-30 16:42:01 · 3819 阅读 · 1 评论 -
STM32\GD32把程序加载到SDRAM的运行方法
1、直接跳转到SDRAM中执行代码是不行的,因为SDRAM的地址默认是不能执行代码的,需要配置下MPU才行。如果程序太大,可以考虑使用IAP+APP的方式,首先通过IAP把APP加载到SDRAM中,然后跳转到APP中运行。2、跳转到APP时,代码就已经在SDRAM中运行,因此在APP中配置时钟和SDRAM初始化要慎重,这会导致SDRAM运行不正常,单片机直接 HardFault_Handler。配置MPU的方法参考:https://www.armbbs.cn/forum.php?原创 2022-10-29 22:24:35 · 2639 阅读 · 0 评论 -
SEGGER调试利器RTT,替代串口,高速数据上传
下载RTT代码,地址:在工程目录里面新建一个 SEEGER 文件夹,将 RTT 组件内容全都添加进去,添加的内容把RTT 文件夹中的2个c文件添加到 MDK 工程添加RTT文件夹的路径到工程移植完成!原创 2022-09-01 00:10:48 · 6117 阅读 · 1 评论 -
ESP32-PICO-D4的使用
特点尺寸仅为 (7.000±0.100) mm × (7.000±0.100) mm × (0.940±0.100) mm集成1 个 4 MB 串行外围设备接口 (SPI) flash集成 2.4 GHz Wi-Fi 和蓝牙双模的单芯片方案,采用台积电(TSMC) 超低功耗的 40 纳米工艺已将晶振、 flash、滤波电容、 RF 匹配链路等所有外围器件无缝集成进封装内,不再需要外围元器件即可工作管脚嵌入式 flash 连接至 VDD_SDIO(26脚),由 VDD3P3_RTC原创 2021-12-28 15:14:02 · 16434 阅读 · 2 评论 -
jlink的SWD与JTAG下载模式的对应接线方法
jtag模式接线第1脚(VDD)第3脚(TRST对应stm32的PB4)第5脚(TDI对应stm32的PA15)第7脚(TMS/SWDIO对应stm32的PA13)第9脚(TCK/SWCLK对应stm32的PA14)第13脚(TDO\SWO对应stm32的PB3)第15脚(RESET对应stm32的NRST)第4.6.8.10.12.14.16.18.20中的任意一个脚(地脚)。sw模式下载接线第1脚(VDD)第7脚(TMS/SWDIO对应stm32的PA13)第9脚(TCK/SW转载 2021-10-15 16:08:10 · 2896 阅读 · 0 评论 -
N76E003介绍与开发资料获取
介绍N76E003 为新唐高速 1T 8051 微控制器系列产品,提供 18 KB Flash ROM、可配置Data Flash与高容量1 KB SRAM ,支持2.4V 至 5.5V 宽工作电压与 - 40 ℃ 至105 ℃ 工作温度,并具备高抗干扰能力 7 kV ESD/4 kV EFT。N76E003 在20 pin封装下提供高达18根I/O脚位;周边包含双串口、 SPI 、 I²C 、6通道 PWM 输出;内建优于同类产品之 < 2 % 误差之高精确度16 MHz RC晶振与高分辨率8原创 2021-09-22 16:49:11 · 934 阅读 · 0 评论 -
BMP格式详解
//BMP信息头typedef __packed struct{ uint32_t biSize ; //BITMAPINFOHEADER结构所需要的字数。 long biWidth ; //图象的宽度,以象素为单位 long biHeight ; //图象的高度,以象素为单位 uint16_t biPlanes ; //为目标设备说明位面数,其值将总是被设为1 uint16_t biBitCoun原创 2021-09-13 11:58:08 · 10402 阅读 · 0 评论 -
GD32F103内部Flash做虚拟U盘
直接使用官方例程,有如下注意点:1、USB的时钟是48MHz,需要根据自己的系统主频来分频。否则时钟频率不对,USB会枚举失败,电脑提示设备描述符获取失败。在如下文件和位置设置宏定义来选择系统主频。原创 2021-08-21 23:10:24 · 2218 阅读 · 1 评论 -
使用MLX90640自制红外热像仪(三):图像插值、图像彩色编码
经过上一节,已经把MLX90640的32x24个像素点读出来了,可是使用32x24直接显示在屏幕上,显示区域显示太小了,于是就需要对图像就行放大。原创 2021-08-12 21:42:31 · 8629 阅读 · 2 评论 -
使用MLX90640自制红外热像仪(二):API函数的使用
前面一篇文章介绍了MLX90640的相关信息和API库的移植,接下来介绍一下API库中的函数,和使用方法。 首先给出API函数的调用顺序,再对每个用到的API函数做说明:#define FPS2HZ 0x02#define FPS4HZ 0x03#define FPS8HZ 0x04#define FPS16HZ 0x05#define FPS32HZ 0x06#define MLX90640_ADDR 0x33#define RefreshRate F原创 2021-08-12 21:41:42 · 7208 阅读 · 12 评论 -
使用MLX90640自制红外热像仪(一):MLX90640介绍与API库移植
平时工作的时候会遇到如下场景:新焊接好的板子,通电后发现电流异常,需要看下板子上哪里发热异常。需要监控某个器件(比如三极管、MOS)的温度,以防过热烧掉。测量温升。 因此需要一个红外热像仪,可是网上看了一下都要2000左右了,虽然分辨率很高,可是我并不需要那么好的性能,于是干脆自己做一个。AMG8833的像素点是8x8的,感觉太低了,于是选用了32x24像素点的MLX90640。MLX90640介绍特性和优点小尺寸,低功耗, 32*24 像素红外阵列方便集成标准的 TO39 封原创 2021-08-12 21:39:37 · 30506 阅读 · 22 评论 -
使用MLX90640自制红外热像仪(四):stm32f103c8t6刷320x240分辨率屏的时间测试
72M主频的stm32f103c8t6刷TFT,全屏一直刷新测试硬件连接:/******************************* ILI9341 显示屏8080通讯引脚定义 ***************************//******控制信号线******///片选#define ILI9341_CS_CLK RCC_APB2Periph_GPIOA #define ILI9341_CS_PORT原创 2021-08-12 21:22:24 · 4367 阅读 · 1 评论 -
写个测试程序测试下,单片机使用浮点型数效率有多低
int main(void){ float data1; data1=0.123; data1+=0.456; while(1) { data1+=0.456; }} 25: data1=0.123; 0x08000648 4C0D LDR r4,[pc,#52] ; @0x08000680 26: data1+=0.456; 0x0800064A 4620 MOV r0,r40x080原创 2021-08-12 20:59:43 · 1249 阅读 · 0 评论 -
Keil5报错:error: more than one instance overload function “xx“ has C linkage
转自:https://blog.csdn.net/malloc_luo/article/details/104437926用Keil编写C、C++混编程序碰到了这个问题#ifdef __cplusplusextern "C"{#endif /*__cplusplus*///overloadvoid foo(int ,int );void foo(float );#ifdef __cplusplus}#endif /*__cplusplus*/编译之后报错:more than o转载 2021-08-01 10:47:10 · 989 阅读 · 0 评论 -
C语言便于调试的宏定义 __FILE__、__FUNCTION__、__LINE__、__VA_ARGS__ 参数使用
__FILE__、__FUNCTION__、__LINE__ 这几个宏定义从名字就可以看出功能:__FILE__:宏在预编译时会替换成当前的源文件名,字符串类型。__FUNCTION__:宏在预编译时会替换成当前的函数名称,字符串类型。__LINE__ :宏在预编译时会替换成当前的行号,整型。__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。 这几个宏定义,好像在VC6中无法使用,但是在Ke原创 2021-07-23 18:02:28 · 1707 阅读 · 3 评论 -
GD32的flash读保护和写保护
介绍 在实际发布的产品中,在GD32芯片的内部FLASH存储了控制程序,如果不作任何保护措施的话,可以使用下载器直接把内部FLASH的内容读取回来,得到bin或hex文件格式的代码拷贝,别有用心的厂商会利用该方法山寨产品。为此,GD32芯片提供了多种方式保护内部FLASH的程序不被非法读取,但在默认情况”下该保护功能是不开启的,若要开启该功能,需要改写内部FLASH选项字节(Option Bytes)中的配置。 GD32的选项字节地址和功能都跟STM32一样: 其中前面带“n”的是不带“n”的原创 2021-07-07 16:28:35 · 9872 阅读 · 2 评论 -
GD32的flash读、擦除、写操作
GD32的flash特征1、在flash的前256K字节空间内,CPU执行指令零等待;在此范围外,CPU读取指令存在较长延时;2、对于flash大于512KB(不包括等于512KB)的GD32F10x_CL和GD32F10x_XD,使用了两片闪存;前512KB容量在第一片闪存(bank0)中,后续的容量在第二片闪存(bank1)中;3、对于flash容量小于等于512KB的GD32F10x_CL和GD32F10x_HD,只使用了bank0;4、对 于 GD32F10x_MD , 闪 存 页 大 小原创 2021-07-06 23:19:48 · 22875 阅读 · 7 评论 -
Ymodem协议学习笔记
介绍 Xmodem、Ymodem和Zmodem协议是最常用的三种通信协议。 Xmodem协议是最早的,支持传输128字节信息块。 Ymodem是Xmodem的改进版协议,具有传输快速稳定的优点。它可以一次传输1024字节的信息块,同时还支持传输多个文件。 平常所说的Ymodem协议是指的Ymodem-1K,除此还有Ymodem-g(没有CRC校验,不常用)。 YModem-1K用1024字节信息块传输取代标准的128字节传输,数据的发送使用CRC校验,保证数据传输的正确性。它每传输一个信原创 2021-06-30 12:04:01 · 1227 阅读 · 2 评论 -
GD32通用定时器、高级定时器PWM输出例程
通用定时器/*********************************************************************************************************** 函 数 名:PWMOut_LCD_BK_Init* 功能说明:TFT背光PWM初始化* 形 参:* 返 回 值:*****************************************************************************原创 2021-06-27 11:31:21 · 8072 阅读 · 0 评论 -
GD32定时器输入捕获例程
官方的例程/** \brief configure the GPIO ports \param[in] none \param[out] none \retval none */void gpio_configuration(void){ rcu_periph_clock_enable(RCU_GPIOA); rcu_periph_clock_enable(RCU_AF); /*configure PA6 (TIMER2原创 2021-06-27 11:22:43 · 10681 阅读 · 7 评论 -
同构多核和异构多核简单介绍
多核处理器的由来 多核出现前,商业化处理器都致力于单核处理器的发展,其性能已经发挥到极致,仅仅提高单核芯片的速度会产生过多热量且无法带来相应性能改善,但CPU性能需求大于CPU发展速度。尽管增加流水线提高频率,但缓存增加和漏电流控制不力造成功率大幅增加,性能反而不如之前低频率的CPU。功率增加,散热问题也严重了,风冷已经不能解决问题了。 那么新技术必须出现-多核处理器。早在1996年就有第一款多核CPU原型Hydra。2001年IBM推出第一个商用多核处理器POWER4,2005年Intal和AMD原创 2021-06-17 13:13:59 · 12153 阅读 · 1 评论 -
串口的硬件流控和软件流控
如果数据在两个串口之间传输时,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。使用流控机制时,当接收端数据处理能力饱和时,就发出“不再接收”的信号,发送端就停止发送,直到接收端处理能力释放,发送“可以继续发送”的信号给发送端时,发送端才继续发送数据;硬件流控常用的有RTS/CTS(请求发送/清除发送)流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制,使用时须连接相应的电缆线;软件流控一般通过串口发送XON/XOFF字符来实现。...原创 2021-06-06 08:16:36 · 4370 阅读 · 0 评论 -
keil调用bat文件,实现删除、复制、加密文件功能
用法通过如下方式打开“User”子标签可以看到左边有3个触发条件:“Before Compile C/C++ File”:编译C/C++源文件前触发“Before Build/Rebuild”:Build之前“After Build/Rebuild”:Build之后每个触发条件后,可以添加两条指令:“Run #1”、“Run #2” 点指令栏后面的文件图标,可以把某个路径的bat文件添加进来。然后keil就会自动在满足上面3个触发条件时,调用对应的bat文件来执行了。例子 比如我要原创 2021-05-18 09:39:08 · 3568 阅读 · 0 评论 -
LPC单片机IO口默认状态、复位状态、未初始化时输出高电平处理
由STM32切换到LPC1788,发现LPC的IO未初始化时输出高电平,初始化后才能拉低,这样和STM32的设计就不兼容了。分析查LPC数据手册后,发现:复位状态为输入模式,上拉模式。后面也有具体说明,IO口的默认配置为带上拉的输入模式。由一个弱MOS提供弱上拉能力。解决1、既然是内部带了弱上拉,那么可以直接外部加稍微强一点的下拉,把电平拉下来。经过试验外部加5.1K的下拉电阻即可把电平拉到0.3V,可满足我的需求。2、可以外加反向电路,把默认的高电平变为低电平。原创 2021-04-12 18:18:21 · 3555 阅读 · 1 评论 -
jlink调试出现**JLink Warning: T-bit of XPSR is 0 but should be 1. Changed to 1错误
原因是Jlink通信频率设置得太高了,调低即可。或者使用“Auto clk”功能自动适配最高频率。原创 2021-03-19 18:34:58 · 2850 阅读 · 1 评论 -
IAR编译提示could not open file lnkstm8s003f3.icf
这个问题一般出现在把工程的位置移动之后。把工程中的icf文件再次定下位即可解决。“Project”-“Options”-“Linker”,找到工程中的icf文件,包含进入即可。原创 2020-09-11 18:02:30 · 860 阅读 · 0 评论 -
J-Flash的使用
一、使用J-Flash读单片机的Flash数据,并保存 打开J-Flash,选择好单片机的型号点“OK”后进入,然后使用“Target”-“Connect”连接,连接上了会在LOG窗口打印之后“Target”-“Manual Programming”-“Read back”-“Entire chip”即可读回Flash中的所有数据。读回后“file”-“Save data file as...”,把数据保存成文件文件格式很多:二、使用J...原创 2020-07-16 17:02:22 · 15229 阅读 · 1 评论 -
STM32F1和STM32F2的option byte(选项字节)的作用
STM32F1的option byte占了16字节。但是这16字节,每两个字节组成一个正反对,即:字节1是字节0的反码,字节3是字节2的反码,...,字节15是字节14的反码,所以,芯片使用者只要设置8个字节就行了,另外8个字节系统自动填充为反码。地址和内容描述如下:STM32F2的option byte同样占了16字节。但是真正使用的只有4个字节。...原创 2020-07-16 16:07:48 · 3947 阅读 · 0 评论 -
STM32的晶振脚(OSCIN和OSCOUT)当成普通IO来使用
一不小心把模拟IIC放到OSCIN和OSCOUT脚上了,现在来说一下怎么把这两个脚当成普通IO来使用: 首先这两个引脚是时钟引脚,于是我们先要把外部时钟关闭,改用内部的时钟。 也就是把HSE关闭,使用HSI。stm32的时钟初始化函数如下:/** @addtogroup STM32F10x_System_Private_Functions * @{ */void RCC_Configuration(void){ RCC_D...原创 2020-07-10 17:35:33 · 16992 阅读 · 1 评论 -
字符串匹配的KMP算法和C语言代码,不需要思考就能理解
KMP算法用于判断一个字符串是否包含另一个字符串,如果包含就返回脚标。其实KMP算法本身特别简单,我看了几篇本章都号称简单易懂,结果看得我云里雾里,直到我看到了阮一峰:字符串匹配的KMP算法,才真正看懂。下文基本上都是阮一峰文章的转述,代码也是在网上其他地方找的。特此说明。一、KMS算法的处理过程下面用KMP算法在字符串"BBC ABCDAB ABCDABCDABDE"中寻找字符串"ABCDABD":首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符...原创 2020-06-22 23:45:54 · 1069 阅读 · 1 评论 -
KeilKill.bat删除keil编译生成的过程文件
del *.bak /sdel *.ddk /sdel *.edk /sdel *.lst /sdel *.lnp /sdel *.mpf /sdel *.mpj /sdel *.obj /sdel *.omf /s::del *.opt /s ::不允许删除JLINK的设置del *.plg /sdel *.rpt /sdel *.tmp /sdel *.__i /sdel *.crf /sdel *.o /sdel *.d /sdel *.axf /sdel *..原创 2020-06-20 18:09:19 · 8681 阅读 · 1 评论 -
STM32命名,Flash分布,扇区
STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:(1)STM32:STM32代表ARM Cortex-M3内核的32位微控制器。(2)F:F代表芯片子系列。(3)103:103代表增强型系列。(4)R:R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚。(5)B:B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flas...原创 2020-05-23 12:04:15 · 14655 阅读 · 5 评论 -
IAP的原理和stm8的IAP
一、IAP介绍 stm8的Flash很小,建议使用寄存器操作,不要用库函数,否则不好控制代码大小。stm8的Flash是字节编程的,而且不需要先擦除再写。IAP的流程为:进入IAP---解锁Flash---//重新初始化STM8的中断向量表 把它重新定义到APP的中断向量中void STM8_HanderIqr_Init(void){ uint8...原创 2020-03-09 22:58:02 · 2035 阅读 · 0 评论 -
通过SWD下载程序出现cannot access memory错误
* JLink Info: STM32F3xxx (connect): Can not attach to CPU. Trying connect under reset.***JLink Error: STM32F3xxx (connect): Connecting failed.* JLink Info: Found Cortex-M4 r0p1, Little endian.* JLi...原创 2020-02-29 11:37:39 · 4237 阅读 · 0 评论 -
串口自动波特率检测简单介绍
一、前言 串口自动波特率检测功能(ABR)可以让设备在进行串口通信时不用提前设置好波特率,根据对方的波特率实时更改自己的波特率,可以大大提高己方设备的兼容性。波特率检测分为硬件检测和软件检测。 硬件检测仅适用于具备了相关硬件的MCU,比如STM32的单片机 而软件检测则适用于所有的单片机。二、硬件自动波特率检测(以STM32来说明)...原创 2020-02-11 20:34:05 · 10272 阅读 · 4 评论 -
keil 器件是空的,Keil的Device为空,不能选择器件
打开工程时提示,没有相关芯片:把相应的芯片包装好后,Device为空,不能选择芯片:原因可能是:使用Keil5打开了比较老的工程文件。Keil5的工程文件后缀是.uvprojx,对老的工程文件可能支持不好,老的工程文件后缀为.uvproj解决:Project-Manage-Migrate to Version 5 Format,把工程文件格式转换为.uvprojx即可。...原创 2020-02-11 10:43:06 · 19958 阅读 · 8 评论 -
Notepad++自用主题推荐
一、效果:二、下载链接:https://download.csdn.net/download/qlexcel/12117862三、使用方法:1、把下载的文件放入Notepad++的主题目录中,路径为C:\Users\你的用户名\AppData\Roaming\Notepad++\themes2、设置--语言格式设置选择主题,选择下载的文件名。勾选使用全局背景...原创 2020-01-22 16:46:51 · 7660 阅读 · 0 评论 -
jlink、DAPLink、J-Link OB资料整理
现在市面上的单片机调试器种类太多了,什么jlink-ob、DAPLink、j-link PRO、ST-Link......今天就来全部介绍并且梳理一下。一、Segger的正版j-Link家族 首先来看一下正版的j-Link,速度和性能当然是最好的,还有各种附加功能,比如支持网路、Wifi等,同时使用Segger的j-Link可以很方便的使用他们家的各种调试软件。当前他们家...原创 2020-01-23 22:01:38 · 22432 阅读 · 0 评论