自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 误用sizeof()计算指针

sizeof(text1)得到的是指针的大小,LEN(text1) = sizeof(text1)/sizeof(text1[0]) 在64位系统下为8/1=8。计算字符数组长度应直接用strlen()。

2025-12-10 20:20:05 145

原创 c snprintf sizeof遇到的问题

填写第二个写入字符串的大小时,填入了指向rxbuf的指针,实际上应该填入sizeof(rxbuf)

2025-11-13 16:17:10 127

原创 stm32 printf重定向到USART

进行重定向 2、在keil中 Options-Target-UseMicroLIB勾选上。在stm32中无法直接使用printf()函数,需要1、使用。

2025-11-11 18:52:29 193

原创 c 链接错误

在main()函数中调用的函数与我实现的函数名不同,这种情况不会直接报错,而是会出现链接错误。

2025-11-08 19:45:30 94

原创 freeRTOS 信号量和队列集

在freeRTOS中将信号量添加到队列集前需要保证信号量是空的,没有释放的;这里vSemaphoreCreateBinary(),在创建二值信号量时会释放一次信号量。

2025-09-02 11:33:55 155

原创 freeRTOS 消息队列

我在Task3传入了&name,类型为char **,但是我在task2中用于接收的QueReceive2,类型为char*,这里应该传入&QueReceive2。此时由于我传入的等待时间为portMAX_DELAY,队列内找不到,task2会一直进入阻塞态。优先级继承:FreeRTOS 支持基于优先级的消息传递,确保高优先级任务在队列操作期间不会被低优先级任务阻塞,队列是任务间通信的主要形式。

2025-07-31 22:30:43 298

原创 freeRTOS 时间管理

相对延时:vTaskDelay(),从执行vTaskDelay()函数开始,直到指定延时的时间结束,只能保证它上一行代码到下一行代码的时间间隔。绝对延时:xTaskDelayUntil(), 将整个任务的运行周期视为一个整体,适用于需要以。保证每次任务执行按照固定时间间隔。

2025-07-31 12:07:02 113

原创 c 全局变量赋值踩坑

在 C 语言中,全局变量(定义在函数外部的变量)和静态变量的初始化是在。,因此不能调用函数(函数调用需要在程序运行时执行)C 语言规定全局 / 静态变量的初始化必须是 “”,不能包含运行期的函数调用。

2025-07-30 19:37:38 173

原创 freeRTOS 时间片调度

【代码】freeRTOS 时间片调度。

2025-07-30 19:01:20 115

原创 学习FreeRTOS时遇到关于中断优先级的坑

FreeRTOS中时钟通过中断来进行计时,默认为Systick,它在FreeRTOS的中断优先级默认为。当把FreeRTOS中断关闭时,时间就不会再增长,这时使用HAL_Delay(),会在内部卡死。这也是为什么我按下key1关闭中断后,想按下key2开启中断时没有反应。

2025-07-29 00:22:51 132

原创 freeRTOS 中断管理、临界段

一般的RTOS函数不能在中断函数中调用,除了xxxISR()这种形式的函数。xxxISR()这种形式的函数只有在被freeRTOS控制的才能调用。FreeRTOS利用寄存器实现中断管理,屏蔽优先级低于某一个阈值的中断。设置为0x50(,也就是5),代表中断优先级在5~15内的均被屏蔽,,0~4的中断优先级正常执行。

2025-07-28 13:03:57 527

原创 freeRTOS 任务挂起、恢复

一般的RTOS函数不能在中断函数中调用,除了xxxISR()这种形式的函数.xxxISR()这种形式的函数只有在被freeRTOS控制的中断优先级 内才能调用。

2025-07-28 11:02:20 276

原创 freeRTOS 静态创建任务

静态创建任务需要提供和任务控制块tcb的地址,并且需要实现给的()函数。

2025-07-26 17:39:36 202

原创 Freetos 动态创建任务

步骤:1、在FreeRTOSConfig.h中将宏配置为 1。2、定义函数入口参数。3、编写任务函数。

2025-07-23 09:54:48 230

原创 STM32 串口中断接收 回调函数

【代码】STM32 串口中断接收 回调函数。

2025-07-13 16:18:22 298

原创 STM32 SPI通信协议

相比I2C,SPI传输更快,没有严格规定最大传输速度。硬件开销大,通信线个数多,并且通信过程中会出现资源浪费的现象。全双工MOSI、MISO可同时向通信双方发送数据,从机上可能表示为DI、DO。SPI只支持一主多从,不支持多主机。SS、CS专门用来指定通信的从机SPI所有通信线都是单端信号,它们的高低电平都是相对GND的电压差,并且所有设备都要共地;如果从机没有独立供电,主机还要额外引出电源正极。SCK时钟线,,对于主机时钟线为输出,对于从机时钟线为输入。SS选择线,,同时只能选中一个;

2025-06-13 10:38:57 442

原创 STM32 I2C通信外设

比较器、自身地址寄存器用于从机模式:自定义一个从机地址,写到这个寄存器,如果收到的地址经过比较器判断和自身地址相同,那么STM32就作为从机。SDA、SCL这种外设模块引出来的引脚,复用在GPIO口,不复用的情况下IO口是由STM32自身的寄存器控制的。10位寻址:起始之后的两个字节都作为寻址,第一个字节前5位是11110作为10位寻址的标志位。帧错误校验计算:数据校验模块,当发送一个多字节数据帧时,硬件自动进行CRC校验计算,SMBus:系统管理总线,主要用于电源管理,与I2C类似。

2025-05-30 09:29:06 436

原创 STM32 I2C 通信协议

一主多从,单片机作为总线主机SDA:数据线SCL:时钟线主机对SCL线完全控制,从机只能读取;在空闲状态下,主机可以主动发起对SDA的控制,只有在从机发送数据和从机应答的时候,主机才会暂时转交SDA的控制权给从机I2C禁止所有设备输出强上拉的高电平,采用加的电路结构。为了防止出现两个引脚同时处于输出状态,如一个高电平,一个低电平,会发生电源短路。,输出低电平,下管导通,强下拉;输出高电平,下管断开,引脚。为了避免高电平造成的引脚浮空需要在总线外面给SCL和SDA各外置一个上拉电阻(弱上拉)。

2025-05-26 10:34:11 1641

原创 STM32 USART串口通信

SCLK:用于产生同步的时钟信号,配合发送移位寄存器输出,发送寄存器移位一次,同步时钟电平就跳变一个周期,时钟告诉对方,移出去一位数据。当数据处理不过来,如接收数据寄存器一直没有读,又有数据过来了,RTS置高电平,对方CTS接收到之后,暂停发送数据,直到RTS置低电平。,在程序上表示为一个寄存器,数据寄存器DR,在实际的硬件中,是两个寄存器,一个用于发送,一个用于接收,TDR只写,RDR只读。,因为在gpio的电路中,是由输出数据寄存器控制,外设无法干预,但使用复用推挽输出后,输出数据寄存器会被断开,

2025-05-24 20:13:13 1370 1

原创 stm32 DMA

AHB从设备,也是DMA自身的寄存器,用于DMA配置,DMA既是总线矩阵上的主动单元,也是AHB总线上的被动单元,CPU通过AHB总线就可以对DMA进行配置了。M2M位为0时,DMA选择硬件触发,一般与外设有关,如ADC转换完成、串口接收数据、定时器时间到,同时还要在。与ADC软件触发不同,以最快的速度,连续不断地触发DMA,将传输计数器清零,完成这一轮转换。的数据转运,外设的数据需要处理完再转运。DMA请求,DMA硬件触发源,如ADC转换完成、串口接收到数据,就会通过这条线路来向DMA发送硬件触发信号。

2025-05-17 18:08:12 991

原创 stm32 ADC单通道转换

【代码】stm32 ADC单通道转换。

2025-05-14 17:13:25 422

原创 c++ char类型转string 类型遇到的问题

在做力扣17题时,遇到。

2025-02-28 19:39:26 192

原创 力扣239滑动窗口最大值

将元素推进队列时就先找到,k个元素中的最大值,只维护这个最大值,仅当推进一个更大值或该最大值被退出时更新。可以避免滑动窗口每次右移都要遍历k次。遍历时的问题:循环变量i要在滑动窗口的下一位。

2025-02-23 22:06:51 258

原创 KMP算法

根据pi[i-1],左右两侧红色区域颜色都相等,所以长度相等的绿色区域和橙色区域元素都相等,同时我们想要求得除pi[i-1]外最长匹配的真前后缀,蓝色区域和橙色区域相等,最终蓝色区域和绿色区域相等。因此pi[len-1]就是我们想要求的pi[i-1]外最长匹配的真前后缀。=s[i]时,需要找到除pi[i-1]外最长匹配的真前后缀,更新len,然后继续判断pi[len]==s[i]

2025-02-20 23:56:02 184

原创 wsl ubuntu esp32开发

2、将windows下 接入的串口设备连接到wsl下。1、配置环境、编译文件。

2024-12-22 18:01:50 198

原创 extern 跨文件使用变量

extern 告诉编译器Num这个变量存在,去别的文件里找。

2024-12-15 00:00:59 171

原创 stm32 通用定时器定时中断函数配置

【代码】stm32 通用定时器定时中断函数配置。

2024-12-14 23:43:23 331

原创 stm32 中断函数配置

【代码】stm32 中断函数配置。

2024-12-06 16:02:49 293

原创 操作 STM32 GPIO步骤

2、使用GPIO_Init()初始化GPIO。3、使用输出或输入的。

2024-11-24 15:37:05 275

原创 STM32 GPIO 输出方式

在开漏输出模式下,高电平相当于高阻态,没有驱动能力,只有低电平有驱动能力。在推挽输出模式下,高低电平均有驱动能力。

2024-11-24 15:32:48 248

原创 c51 延时函数和定时器中断函数冲突

在使用定时器中断函数的同时使用了延时函数,可以在进入延时函数之前置EA = 0,关闭定时器中断,延时函数之后置EA = 1.单总线的时序是绝对时间,需要这么来处理冲突, I2C总线有单独的时钟总线,不受延时函数的影响。

2024-11-19 20:35:21 194

原创 I2C时序遇到的问题

在编写I2C_stop(),终止I2C通讯的函数时,弄错了SCL、SDA。,导致向EEPROM中写入的数据始终全位为1。以后要严格按照手册上的顺序来切换。

2024-11-04 23:45:48 345

原创 I2C总线 接收数据、发送数据

当主机准备接收数据时,需要释放对SDA的控制权。如果主机发送的最后一位数据为0(即SDA=0),则主机需要主动释放SDA,此时SDA的控制权交由从机,主机对SDA的操作将无效。如果主机发送的最后一位数据为1(即SDA=1),主机会自动释放SDA,从机会立刻发送ACK信号(SDA=0),此时主机对SDA的操作也将无效。由于不确定主机发送的最后一位数据是0还是1,在接收数据开始时主动将SDA置1。

2024-10-29 11:38:27 551

原创 DS1302 读写数据

R/W 位决定输入还是输出。DS1302 将它的数据。I/O 口上的电平被。

2024-10-20 19:55:52 371

原创 c51 单片机 位变量赋值,非0即1

在给 sbit 类型的位变量赋值时,等号右边为 0 ,变量为0;等号右边非零,变量为1。

2024-10-20 18:44:19 449

原创 linux 环境变量 env/export/source/PATH

PATH记录了系统执行任何命令的搜索路径(路径之间以:隔开)执行任何命令都会按照顺序,从上述路径中搜索要执行的程序的本体。

2024-08-04 00:10:23 287

原创 linux 进程管理 ps/kill

f:以完全格式化的形式展示全部信息。ps -ef 列出全部进程的全部信息。-9:表示强制关闭进程。-e:显示出全部的进程。

2024-07-28 21:57:30 259

原创 linux ln命令创建软链接

在系统中创建软链接,可以将文件、文件夹连接到其他位置。类似Windows系统中的《

2024-07-22 00:03:17 405

原创 systemctl命令,控制软件的启动和关闭

systemctl start | stop | status | enable( 开机自启 ) | disable( 关闭开机自启 ) 服务名。Linux 系统很多软件( 内置或第三方 )均支持使用systemctl命令控制 :启动、停止、开机自启。能够被systemctl管理的软件,一般称为:服务。

2024-07-21 23:15:58 314

原创 linux 下载命令 yum/apt

RPM包软件管理器,用于自动化安装配置Linux软件,并且可以自动解决依赖问题 (将其他所依赖的程序一并下载并安装)-y : 自动确认,无需手动确认安装或卸载过程。install : 安装。remove : 卸载。search : 搜索。权限(使用 sudo )

2024-07-21 22:26:57 609

空空如也

空空如也

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

TA关注的人

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