自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 按键处理。

【代码】按键处理。

2025-12-15 13:58:35 105

原创 使用vscode代码格式替换方法 uft-8 GBK

转成明文,能看懂的文字之后,此时再进行保存。

2025-11-22 21:12:35 146

原创 移植LVGL注意事项

提供LVGL心跳,extern void lv_tick_inc(uint32_t tick_period);在lv_conf.c文件中,将默认申请48K堆空间尽可能改小,目前使用16K可以。添加宏定义LV_CONF_INCLUDE_SIMPLE 全局。堆栈大小默认可能不够,需要修改,栈大于8K,堆大于2K。

2025-11-22 20:47:57 139

原创 vscode找不到uint32等的头文件以及爆红问题

USE_HAL_DRIVERSTM32F103xE

2025-11-21 18:29:37 171

原创 esp32 wifi配置

【代码】esp32 wifi配置。

2025-02-19 14:45:59 227

原创 xTaskGetCurrentTaskHandle()函数使用

xTaskGetCurrentTaskHandle():这是 FreeRTOS 提供的一个 API 函数。它的作用是返回当前正在运行的任务的句柄。任务句柄是一个指向任务控制块(TCB,Task Control Block)的指针,TCB 是 FreeRTOS 用来管理任务的一个数据结构,包含了任务的状态、优先级、堆栈指针等信息。通过任务句柄,我们可以对任务进行各种操作,比如挂起、恢复、删除等。

2025-02-17 16:48:36 553

原创 ota升级注意事项

define CONFIG_DOUBLE_BANK_ENABLE 1 //使能双备份功能。这个地方要从0改成1。

2025-02-08 16:11:21 363

原创 配置pip国内镜像

pip安装的包都存在于外国的服务器上,速度会非常慢,可以给pip配置国内镜像,直接从国内服务器安装依赖。方式一:自动配置(荐)

2024-08-28 20:52:07 1449

原创 快速排序(c语言)

【代码】快速排序(c语言)

2024-08-15 14:04:29 185

原创 循环队列的代码

【代码】循环队列的代码。

2024-08-15 11:05:09 220

原创 C语言常见的题目

标识符指的是变量、函数、数组名、结构体等要素命名时使用的字符序列。有命名规范,强制命名规范是只能使用英文字母、下划线和数字组成,不能使用数字开头,不能使用关键字。常用的命名规范有小驼峰、下划线拼接。声明:告诉编译器某个变量的存在以及数据类型,但是并没有分配内存空间。定义:在程序中为变量分配了内存空间并初始化,生成了一个完整实体。

2024-08-12 21:16:11 300

原创 栈的实现以及相关函数

【代码】栈的实现以及相关函数。

2024-08-12 20:11:44 188

原创 链表的实现以及相关函数

【代码】链表的实现以及相关函数。

2024-08-12 20:10:58 176

原创 顺序表的实现以及相关函数

【代码】顺序表的实现以及相关函数。

2024-08-12 20:10:10 166

原创 文件操作函数使用的注意事项

函数在使用的时候,注意接收字符时,要先清除缓冲区中的’\n’,可以使用getchar();然后丢弃换行符,储存其余字符,并在字符末尾添加一个空字符。(可选择性利用 getchar()循环清空缓冲区中的字符,避免影响下次输入)超出的字符则保留在缓冲区中,与 gets()不同的是 gets()会丢弃。读取指定数量的字符,如果该参数是 n,则读取 n-1 个字符,或。替换为空字符,而 fgets()会储存在字符串中。从输入流中读取一行文本,并存储在一个字符数组中,从输入流中读取一个字符,返回值为int。

2024-08-11 13:56:24 258

原创 客户、学生管理系统(C语言)

当在进行读取用户输入时,如果用户进行回车操作,这样就会导致这次读取的姓名就为\n,但是对于实际来说肯定不行,此时我们使用fgets()函数,将输入流中的数据读取的我们开辟的一个缓冲区中,判断读取到的第一个字符是不是\n,如果是,则不进行修改,如果不是,再进行修改,使用sscanf()函数来格式化到name属性。

2024-08-10 17:45:01 325 1

原创 宏和函数的区别

函数是一段可重复使用的代码,会被编译,会给它申请内存空间,每次调用,其实就是执行的这块内存空间的代码。宏只是仅仅进行文本的替换,宏在编译前就被替换掉了,不占用内存,不对表达式进行计算。

2024-08-09 18:32:40 189

原创 realloc函数动态申请内存

对于第一次申请内存空间,返回了一个地址空间,但是第二次进行重新申请内存的时候,传入的指针变量是作为realloc函数的参数,表示如果第一次申请的内存空间后面还能够开辟连续空间,则进行开辟;否则重新找一块内存,开辟的空间为总的要开辟的空间。所以,这两种情况所产生的结果就是可能返回的地址是一个新的地址,也可能不是。

2024-08-09 18:16:13 241

原创 bug积累

时,实际上是在使用 C99 标准中引入的变长数组(VLA, Variable Length Array)的特性。变长数组允许在栈上分配其大小在运行时确定的数组。这意味着 len1 和 len2 的值可以在程序运行时确定,但仍然可以用来声明数组 p 的大小。如果 len1 + len2 的值非常大,可能会导致栈溢出,因为变长数组是在栈上分配的。变长数组不能被初始化,因为编译器在编译时不知道数组的确切大小,因此无法为数组分配初始值。这就是为什么 int p[len1 + len2] = {};

2024-08-07 11:17:56 400

原创 函数指针的使用示例

【代码】函数指针的使用示例。

2024-08-06 19:24:55 156

原创 指针const 和 const指针的区别

【代码】指针const 和 const指针的区别。

2024-08-06 19:23:04 199

原创 数组指针的使用以及与数组名的区别

【代码】数组指针的使用以及与数组名的区别。

2024-08-05 20:08:21 159

原创 字符串数组的创建方式及注意点

字符数组:指的就是一个数组,里面存储了多个字符。

2024-08-04 17:24:27 220

原创 提示用户请录入5个学生的成绩,求最高分及该学生学号,求最低分及该学生学号

【代码】提示用户请录入5个学生的成绩,求最高分及该学生学号,求最低分及该学生学号。

2024-08-02 09:58:47 529

原创 stm32使用pwm和编码器模式(包含重映射)

【代码】stm32使用pwm和编码器模式(包含重映射)

2024-07-11 15:21:44 523

原创 stm32使用串口打印

【代码】stm32使用串口打印。

2024-07-11 10:53:53 891

原创 stm32实现软件spi

【代码】stm32实现软件spi。

2024-07-10 16:16:15 521

原创 stm32使用硬件SPI

【代码】stm32使用硬件SPI。

2024-07-10 16:10:41 618

原创 stm32使用单通道规则组ADC

如果需要关闭adc转换,只需要设置CNT,将其置为0,后面再转换一次就停止了。

2024-07-09 20:16:52 394

原创 stm32使用双通道ADC读取

【代码】stm32使用双通道ADC读取。

2024-07-09 20:03:06 627

原创 stm32使用DMA将内存数据发送到串口

【代码】stm32使用DMA将内存数据发送到串口。

2024-07-09 18:43:28 389

原创 stm32高级定时器

高级定时的通道1、2、3可以分别输出2路互补信号,互补输出一般用于驱动H桥电路。频率周期相同,相位差180度。引入,一般mos管器件。会造成短路,导致器件烧毁。,连接brk,可以用作输入信号,去操作DTG寄存器,然后处理突发事件。,比如可以生成有限次的pwm,生成3次,只需要重复次数写2。对于高级定时器必须发生RCR+1次溢出动作后才可以产生更新事件。对于通用或基本定时器,每溢出一次就可以产生更新事件。

2024-07-09 15:21:27 287

原创 stm32使用通用定时器生成pwm

【代码】stm32使用通用定时器生成pwm。

2024-07-09 13:04:46 527

原创 stm32基本定时器

【代码】stm32基本定时器。

2024-07-09 12:13:36 1067

原创 stm32实现IIC读写

【代码】stm32实现IIC读写。

2024-07-09 10:10:30 633 1

原创 stm32标准库延时函数

Delay.c 文件。

2024-07-09 00:12:14 1112

原创 通过临时密码开锁功能

通过以上方案,可以实现一个无需联网的智能门锁系统,手机端生成的临时密码可以在门锁端进行验证,确保门锁的安全性和可靠性。门锁出厂时,将xxx算法和过期规则写入门锁的存储芯片中,并提示用户设置管理员密码。手机端和门锁端使用相同的算法,根据管理员密码和过期规则生成临时密码。手机端APP使用相同的算法生成密码,并显示给用户。门锁端接收用户输入的密码,并使用相同的算法验证。

2024-06-27 14:16:41 1449

原创 ESP32-C3芯片通过蓝牙控制开锁功能

定义BLE服务和特征,用于接收开锁命令。0x00FF// 服务UUID0xFF01// 特征UUID4// 句柄数量// 特征值// 特征属性// 处理GATT服务器事件// 处理事件(详细代码见下文)// 注册GATT回调if (ret) {return;// 创建GATT服务器。

2024-06-27 14:00:26 779

原创 局域网获取天气

要让智能音箱在局域网内获取到互联网的数据,通常需要一个网关(Gateway)来连接局域网和互联网。

2024-06-27 13:52:27 1167

原创 实现获取天气

NTP校时通过NTP协议从NTP服务器获取当前时间,并设置设备的系统时间。基于IP地址获取归属地使用在线API(如IP-API或IP Geolocation API)获取设备的地理位置。获取天气和空气质量信息使用天气API(如OpenWeatherMap或WeatherAPI)获取归属地的天气和空气质量信息。

2024-06-27 13:45:55 779

空空如也

空空如也

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

TA关注的人

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