- 博客(13)
- 收藏
- 关注
原创 QT低功耗蓝牙使用
HostDiscoverableLimitedInquiry //表示本地蓝牙设备在有限的时间内可以被其他设备发现,这通常用于限制设备的可见性,以保护用户隐私或安全。WriteSigned = 0x40, //这表示属性支持有签名的写入操作,这通常用于需要验证写入者身份的场景,以提供额外的安全性。HostConnectable, //表示本地蓝牙设备可以连接其他蓝牙设备,但是不一定能被其他设备发现。ServiceDiscovered, //服务的特征和描述符已发现完成。
2025-01-07 16:22:31
1072
原创 FreeRTOS的软件定时器(自用)
软件定时器是由一个任务来控制的,要明白流程先明白软件定时器句柄。其中列表项的itemvalue的值为下一次定时器超时节拍数。句柄结合两个定时器列表组成软件定时器,需要两个定时器列表更任务列表类似是为了判溢操作。
2024-11-15 09:53:49
334
原创 FreeRTOS系统的任务通知笔记(自用)
任务通知可以轻量的模拟二值信号量、计数信号量、长度为一的队列·、事件,但是任务通知只能向自己指定的任务发送通知,这就让任务通知有所限制。笔记不记录如何使用任务通知模仿这些,只解析API函数。使用任务通知时需要打开configUSE_TASK_NOTIFICATIONS宏。开启后TCB_t关于任务通知的两个成员变量:#endifucNotifyState成员记录状态有三个宏:这个宏表示任务当前没有等待任何任务通知(反正不是因为任务通知而阻塞)。
2024-10-16 10:55:21
562
原创 以stm32f103的startup_stm32f10x_md为例解析笔记(自用)
1.设置初始化栈和堆所需要的符号和标记2.设置中断向量表3.实现初始的中断函数4.判断是否链接__MICROLIB,若没有则运行自己的初始化栈和堆初始化汇编指令,若链接了则只导出栈和堆的标记。
2024-10-10 17:25:09
1267
原创 FreeRTOS互斥量和递归互斥量笔记(自用)
跟二值信号量一样,互斥量和递归互斥量都是队列长度为1消息项大小为0的消息队列,但是互斥量拥有优先级继承的机制,这能有效的防止优先级翻转的现象。假如有三个任务,优先级分别为高,中,低。在高任务获取互斥量时,互斥量已经被低任务获取了,高任务因此被阻塞这时中任务就绪了所有低任务吧系统给力中任务,这就导致了高任务等待中任务运行后才能获取到系统,这就造成了优先级的翻转。
2024-09-23 09:51:24
358
原创 FreeRTOS的计数信号量和二值信号量
计数信号量和二值信号量依托与消息队列,本质上是消息项大小为0的消息队列。使用uxMessagesWaiting来表示信号量值。获取信号量是调用读取消息队列的API,释放信号量是调用写入消息队列API,只是消息的大小是0字节。二值信号量初始值是0,计数信号量可以指定初始值详情看消息队列。
2024-09-20 14:17:31
210
原创 FreeRTOS消息队列笔记(自用)
主要对xQueueCreate和xQueueSend以及xQueueReceive的解析,其余API不一一解析。
2024-09-18 15:49:28
267
原创 FreeRTOS的xPortSysTickHandler函数(笔记自用)
xPortSysTickHandler函数在FreeRTOS中在给系统提供系统节拍的系统时钟或是定时器中断中调用的。他更新系统节拍数,检查任务阻塞,任务切换等。
2024-09-12 13:35:43
1016
原创 FreeRTOS静态分配内存创建任务笔记(自用)
使用时configSUPPORT_STATIC_ALLOCATION要为1。静态创建任务函数与动态的创建任务函数十分相似。使用静态分配内存时要实现空闲任务接口。
2024-09-02 21:43:44
226
原创 FreeRTOS的xPortPendSVHandler函数默认笔记(自用)
ldr:LDR指令可以从内存中读取数据到寄存器中。str:将寄存器中的数据存储到内存中。他们是对内存的操作,简单的说str r0 [r1] 这是将r0的值写入r1值所在的地址,如果str r0 r1这是不允许的。MOV指令可以将一个值从一个寄存器复制到另一个寄存器,或者将一个立即数(常数)加载到一个寄存器中。MRS指令通常用于读取和处理状态寄存器中的标志位,例如在异常处理或处理器模式切换时。stmdb:STMDB{} 基址寄存器!, {寄存器列表}。
2024-08-22 22:51:11
702
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人