- 博客(35)
- 资源 (3)
- 收藏
- 关注
原创 ILI2130触控IC驱动
它可以使用IIC和USB通讯,我们选用的是IIC通信的,成品对外引脚有6根,分别是SDA,SCL,INT,RST,VCC,GND;其中SDA与SCL是IIC通讯引脚,INT是中断引脚,当TP芯片检测到触摸信号时,会拉低该引脚;单片机可检测该引脚的电平变化来判断是否读取TP的信息;RST是TP的复位引脚,VCC和GND分别为电源和地。
2024-01-18 10:26:18
2575
原创 EasyFalsh移植使用方法
这里说的修改默认环境变量后修改环境变量版本号就自动重新写入到flash这句话是有问题的,要开启上面【#define EF_ENV_AUTO_UODATE】宏定义后才会实现该功能,没开启该功能是不会自动更新的。移植时参考官方例程和文档就行,主要就是关于操作flash的几个接口的定义;
2023-09-06 15:19:50
550
1
原创 ESP32C3开发环境安转(win10+VSCode)
对于第一次使用ESP32开发的人来说,对于ESP32的开发方式都有点一脸懵逼,因为它可开发的方式太多了,基于IED的Eclipce、VScode,Arduion还有乐鑫自己的IDE,在网上搜ESP32的环境搭建就会出现很多教程让人不知所措,而且ESP32的ESP_IDF框架支持跨平台,能在WINDOWNS、LINUX环境下开发,对于第一次使用ESP32进行开发的人来说确实头痛,不知道选择哪一种开发方式。我个人建议不熟悉linux的同学选windows+VSCode的方式进行开发,下面我要讲的也是这种方法。
2023-06-26 18:40:09
736
原创 STM32H743无操作系统移植LVGL8.2
本文章记录了本人使用正点原子F407和H743两块开发板移植LVGL8.2的说明,移植步骤安装正点原子的B站教程。
2023-05-12 14:26:42
2385
1
原创 【无标题】
其中比较特殊的FSMC_NE 是用于控制SRAM 芯片的片选控制信号线,STM32 具有FSMC_NE1/2/3/4 号引脚,不同的引脚对应STM32 内部不同的地址区域。FSMC的作用简单来说就是在内核的4G地址映射中(0x00000000~0xFFFFFFFF)分配了一段名叫External RAM的大小为1G的地址空间(0x60000000~0x9fffffff)用于映射外部存储器,在操作0x60000000~0x9fffffff这段地址的时候直接操作的就是映射的对应的存储器地址。
2023-04-23 10:45:31
521
原创 【无标题】Browse information of one or more files is not available错误及原因(不是网上那种点魔法棒解决)
keil出现Browse information of one or more files is not available错误
2022-08-18 12:33:53
9678
2
原创 Qt生成二维码图片方法
QRCode二维码简介QR码是日本DENSO WAVE INCORPORATED公司在60年代研发出的一款开放公开的二维码,目前该公司全面公开了QR码的相关标准,不行使就QR码相关的专利权,且大力推广QR码在各行各业的使用,以至目前QR码得到了广泛应用,许多国际标准化组织将其纳入标准。下面介绍一下开发过程中使用QR码可能涉及的主要参数:二维码的大小:21码元×21码元~177码元×177码元(以每边4码元为单位递增),二维码大小由码的版本决定;二维码所能包含的信息量与码的大小有关。QR码的版
2022-05-25 11:14:11
3823
2
原创 Qt按钮控件
QPushButton 普通下压按钮,本例中通过lambda表达式,按下按钮后改变表格颜色。QToolButton工具按钮(QToolButton )区别于普通按钮 QPushButton )的一点是,工具按钮QToolButton可以带图标 。这里区别下图标和按钮的背景图片是不一样的。通常我们在 Q T oolBar 这种工具条(工具栏)上设置不同的按钮,如果这些按钮还带图标和文本,那么 QToolButton 是个不错的选择。本例中使用了一个系统自带的“帮...
2022-04-05 15:21:52
1672
原创 C++中在栈上创建对象的析构函数的执行时机
在所有函数之外创建的对象是全局对象,它和全局变量类似,位于内存分区中的全局数据区,程序在结束执行时会调用这些对象的析构函数。在函数内部创建的对象是局部对象,它和局部变量类似,位于栈区,函数执行结束时会调用这些对象的析构函数。new 创建的对象位于堆区,通过 delete 删除时才会调用析构函数;如果没有 delete,析构函数就不会被执行。例如:#include <iostream>#include <string>using namespace std;cla
2022-03-23 20:32:39
1556
原创 C++中函数形参默认参数写入的位置对函数调用的影响
默认参数的概念在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。 用了函数,那肯定就会有函数的定义和声明,在实际情况中主要有下面几种情况:Ⅰ.函数定义在调用函数前,不需要声明;②.函数定义在函数后面,需要先声明;下面我们对这几个情况进行讨论:(1)函数定义在调用函数后,需要声...
2022-03-12 22:50:35
2234
1
原创 单片机通过串口发送浮点类型数据
单片机通过串口向串口助手或者其他器件发送数据时是不能直接发送浮点类型数据的,通过printf("%f",1.28)发送浮点数据,在串口助手看似是小数,其实是字符串类型,它们是各符号对应的ASSCII码值(“1”的asscii是0x31,“.”的asscii是0x2E),使用printf发送的%d、%f、%lf等都是这样,是发送的对应数据的各asscii码值,除了%c之外。如下图所示是发送浮点类型串口助手的情况。分别使用%d、%f、%c发送数据,如图(左边是程序,中间是hex类型(字符型)显示,右边是
2022-01-05 22:07:26
18315
1
原创 W25Q1528 flash简要讲解
每页256个字节(看系统框图他只有256字节大小的缓冲区,也就是一页),写入的数据先放到缓冲区换成,然后再写入存储阵列,在写入存储阵列的这段时间中,器件对外部发的读写等指令没反应。 256字节一页,16页一个扇区(4K),16个扇区一块(64K) 写之前必须先擦除,只能以页写入方式写,写可以在任何地址写入不大于一页字节大小的数据,若写入的数据大小大于页剩余空间的大小,则会从该页起始位置继续写入并覆盖之前在此位置的值。 读:在发送读取的地址后,可以从存储器中读取任意字节大小的数据,读取一个字节...
2021-12-25 16:32:39
1569
原创 stm32要复位才能正常执行程序问题的记录
今天搞了个MD5加密的东西,从网上找了加密的算法(mg5.c、mg5.h)然后移植到正点原子的串口实验中打印查看,有趣的是相同一串字符(12334567)经过加密后居然有时候输出错误的值,如图:32135a337f8dc8e2bb9a9b80d86bdfd0才是正确的,经常出现程序下进去,输出的是e35a8992f1671f96762cf93eb979e384。按下复位键后才会输出正确的密钥,而且这个错误的密钥输出的几率和串口打印内容的数量有关,如果把前面串口打印的东西注释掉或者只打印一两句话.
2021-11-04 19:14:43
3905
转载 wifi模块微信小程序AP配网(UDP)
转载链接:GitHub - Ai-Thinker-Open/Ai-Thinker-Open_WeChatMiniAP2Net: 【安信可开源团队】微信小程序AP配网安信可WiFi模块加入路由器;
2021-09-03 19:38:01
1310
原创 单片机/C语言浮点型数据转换为字符串方法
浮点型数据转换为字符串的方法: gcvt()函数 sprintf()函数 gcvt()函数函数名:gcvt头文件:<stdlib.h>函数原型: char *gcvt(double f,int n,char *c);功能:把浮点数转换为字符串,四舍五入参数:double f 要转换的浮点数 int n 为要显示的位数 char *c 存放结果的临时缓冲区返回值:返回字符串指针,即c指针但是,keil的C语言库不包含该函数...
2021-08-16 19:38:15
8381
原创 单片机求绝对值
单片机求绝对值C语言 abs() 函数用于求整数的绝对值。fabs() 函数用于求双精度浮点数的绝对值。abs() 函数调用添加头文件:math.h 或者 stdlib.hfabs() 函数调用添加头文件:math.h#include<stdio.h>#include<math.h>int main(){ int a = -3, b ; float c=-5.2, d,e; //为变量赋初值 b = abs(a); //求a的绝.
2021-08-16 19:32:30
2919
转载 C语言可变参数讲解
本文为优快云博主「车子 chezi」的原创文章,原文链接:https://blog.youkuaiyun.com/longintchar/article/details/85490103
2021-07-08 10:05:11
56
原创 keil mdk 编译左下角显示错误 “no browse info for symbol in this context“不能正常使用“Go to Definition xxx”跳转
如图所示,创建了一个工程,但是在使用“Go to Definition xxx”时不能正常跳转,且左下角出现红色的"no browse info for symbol in this context",结果千辛万苦的研究探索,我们发现了出现这个问题的原因,解决这个问题的方法有以下两个:方法一:把工程移到不包含中文的路径下进行编译使用。这种方法简单除暴,但是很不方便,因为我们写的工程免不了要保存在中文路径下。方法二:检查我们工程的配置是否如图所示选择的是version6:如果是,则改为
2021-07-07 10:55:56
23246
26
转载 以安装固件库但Device为空
在使用GD32时打开一个例程,编译是可以成功编译,但是不能正常下载,且Device里面没有芯片型号可以选择,完全为空,但是相关的固件库已经安装完成,如图所示:在打开工程或编译的过程中会出现没有找到器件的提示:出现这种问题原因可能是:使用Keil5打开了比较老的工程文件。Keil5的工程文件后缀是.uvprojx,对老的工程文件可能支持不好,老的工程文件后缀为.uvproj解决办法:Project-Manage-Migrate to Version 5 Format,把工程文件格式转换为.
2021-07-06 14:58:17
1140
原创 stm32的API | 远程升级
简介IAP(In Application Programming)即在应用编程, IAP 是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。通常实现 IAP 功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信方式(如 USB、 USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这
2021-07-05 20:54:56
2140
1
原创 stm32f4内部flash讲解
基础简介不同芯片内部的flah大小不同,stm32f407内部flah是1M(1024K)大小,其结构划分如图所示:STM32F4 的闪存模块由:主存储器、系统存储器、 OPT 区域和选项字节等 4 部分组成主存储器:该部分用来存放代码和数据常数(如 const 类型的数据),分为 12 个大小不同的扇区,主存储器的起始地址是 0X08000000。系统存储器:这个区主要用来存放 STM32F4 的 bootloader 代码,此代码是出厂的时候就固化在芯片内部了,比例用串口下载程序时的bo
2021-07-05 09:53:53
10369
原创 STM32F4ADC基础概述
STM32F4内部ADC概述STM32F407ZGT6 有 3 个 ADC,每个 ADC 有 12 位、10 位、8 位和 6 位可选,每个 ADC 有 16 个 外部通道。另外还有两个内部 ADC 源和 VBAT 通道挂在 ADC1 上。ADC 具有独立模式、双重模 式和三重模式,对于不同 AD 转换要求几乎都有合适的模式可选。ADC功能框图:1)参考电压(图片来自STMf4中文参考手册)ADC 输入范围为:VREF- ≤ VIN ≤ VREF+。ADC读取到的电压由 VREF
2021-04-27 10:33:56
2692
原创 STM32F4定时器及中断相关概要
目录TIM概述1.通用定时器中断配置步骤(基本定时器也一样):TIM概述STM32F42xxx 系列控制器有 2 个高级控制定时器、10 个通用定时器和 2 个基本定时器,还有 2 个看门狗定时器。其中TIME1 和 TIME8 等高级定时器,TIME2~TIME5,TIM9~TIM14通用定时 器,TIME6 和 TIME7 基本定时器,总共达 14 个定时器之多。基本定时器时钟只能来自内部时钟,高级控制定时器和通用 定时器还可以选择外部时钟源或者直接来自其他定时器等待模式...
2021-03-31 22:03:25
1691
原创 STM32F103与F407复用映射差异
寄存器和配制目录寄存器和配制差异F1:F4:差异F1:如上图所示,F103有默认复用功能和重映射复用功能一说,图中PB6,PB7默认复用功能为I2C,重映射复用为USART1,两者在配置上有点小差别。默认复用功能:只需要开启该外设的时钟和相对应的GPIO时钟,然后再配置相应外设即可。(例:开启I2c时钟和PB6和PB7时钟)重映射复用:不仅要开启该外设的时钟和相对应的GPIO时钟,还要开启AFIO时钟才能开始配置外设。stm32f103的AFIO寄存器如下...
2021-03-30 21:15:05
982
原创 STMF4编写系统时钟
目录STMF4时钟系统重点概要HSE作为系统时钟配置方法(附带程序)正点开发板晶振问题(不同频率晶振配置方法)STM F407时钟系统概要时钟框图设置系统时钟SYSCLK、设置AHB 分频因子(决定HCLK 等于多少)、设置APB2 分频因子(决定PCLK2 等于多少)、设置APB1 分频因子(决定PCLK1 等于多少)、设置各个外设的分频因子;控制AHB、APB2 和APB1 这三条总线时钟的开启、控制每个外设的时钟的开启。对于SYSCLK、HCLK、PCLK2、PCLK1 这
2021-03-26 00:41:14
577
原创 STM32F4新建工程文件简述
新建工程文件简述目录新建工程文件简述新建工程所需文件简述新建工程所需文件简述启动文件 statup_stm32f40_41xxx.s 启动文件,汇编语言编写,上电后执行的第一个文件,主要是设置堆栈,配置环境,调用SystemInit函数进行时钟初始化,中断服务函数名称也可在此寻找 外设相关 system_stm32f4xx.c 系统初始化,时钟配置,SystemInit函数就在此文件内 stm32f4xx.h 外设寄存器定义和地址映射到内..
2021-03-24 11:31:23
385
Screenshot_2024-05-30-15-30-43-308_com.quark.browser-edit.jpg
2024-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人