fxyc87

  • 2024-11-13
  • 回复了主题帖: 如何使能二进制信号量

    我只是大自然的搬运工 1. **二进制信号量简介**    - 在FreeRTOS中,二进制信号量是一种用于任务同步和互斥的机制。它只有两种状态:满(被获取)和空(可用)。二进制信号量可以用于保护共享资源,也可以用于任务之间的同步。 2. **使能二进制信号量的步骤**    - **创建二进制信号量**      - 使用`xSemaphoreCreateBinary()`函数来创建一个二进制信号量。这个函数返回一个`SemaphoreHandle_t`类型的句柄。例如: ```c SemaphoreHandle_t binarySemaphore; binarySemaphore = xSemaphoreCreateBinary(); if(binarySemaphore == NULL) {     // 创建失败的处理,可能是内存不足等原因     // 可以在这里添加错误处理代码,如打印错误信息等 } ```    - **给出(释放)信号量**      - 二进制信号量创建后,默认是没有被获取的(空状态)。可以使用`xSemaphoreGive()`函数来释放信号量,使其变为满状态。例如,在一个任务中释放信号量: ```c void vTaskFunction(void *pvParameters) {     // 其他任务代码     // 释放信号量     if(xSemaphoreGive(binarySemaphore)== pdTRUE)     {        // 信号量释放成功的处理     }     else     {        // 信号量释放失败的处理,可能是信号量无效等原因     }     // 任务的其他代码 } ```    - **获取信号量**      - 另一个任务或者中断服务函数(在满足条件的情况下)可以使用`xSemaphoreTake()`函数来获取信号量。当信号量处于满状态时,`xSemaphoreTake()`函数会将信号量变为空状态,并允许任务继续执行。例如: ```c void anotherTaskFunction(void *pvParameters) {     if(xSemaphoreTake(binarySemaphore, portMAX_DELAY)== pdTRUE)     {        // 成功获取信号量,执行受信号量保护的代码段        // 例如访问共享资源等        // 完成后可以再次释放信号量,以便其他任务获取        xSemaphoreGive(binarySemaphore);     }     else     {        // 获取信号量失败的处理,可能是信号量为空且等待超时等原因     } } ```    - **注意事项**      - 当在中断服务函数中使用信号量时,应该使用`xSemaphoreGiveFromISR()`函数来释放信号量,而不是`xSemaphoreGive()`。因为在中断服务函数中不能调用会导致阻塞的函数。`xSemaphoreGiveFromISR()`函数的使用稍微复杂一些,它需要一个额外的参数来指示是否需要进行任务切换。例如: ```c void vISRFunction(void) {     BaseType_t xHigherPriorityTaskWoken = pdFALSE;     xSemaphoreGiveFromISR(binarySemaphore, &xHigherPriorityTaskWoken);     if(xHigherPriorityTaskWoken == pdTRUE)     {        // 请求任务切换,使等待信号量的高优先级任务能够尽快运行        portYIELD_FROM_ISR();     } } ```      - 在使用二进制信号量进行任务同步或互斥时,要确保正确地初始化、释放和获取信号量,以避免出现死锁或资源竞争等问题。并且要根据具体的应用场景合理地设置信号量获取的等待时间,如使用`portMAX_DELAY`表示一直等待,直到信号量可用,或者使用其他较短的时间值来实现有限时间的等待。

  • 2024-11-11
  • 回复了主题帖: LIN转串口的电压问题

    LIN还需要转串口么?直接串个电阻,再弄个稳压管直接就进TTL引脚上去不就行了?

  • 2024-11-07
  • 回复了主题帖: NXP LPC1114资料

    十多年前入门单片机就学的它,也是周立功的,官网有资料,很全的。

  • 2024-10-22
  • 回复了主题帖: 说一说,你是怎么学习变压器设计的?

    其实我一直在想变压器能不能像电阻电容一样,搞成标准件,像普通电感一样, 比如我搞个20W的变压器,3绕组,主绕组,反馈,供电。弄个标准件,有个规范,所有厂家都按这个规范搞。 否则每个人都要厂变压器厂家订制,量少还麻烦。

  • 2024-10-16
  • 回复了主题帖: ESP32-P4来了

    TWAI就是CAN啊

  • 2024-09-28
  • 回复了主题帖: 画原理图老是很多低级错误

    Dxiaobai 发表于 2024-9-26 09:20 关键是公司要一版成 告诉 他,一版成神仙也办不到.

  • 2024-09-26
  • 回复了主题帖: 小白动手做了个AD/DC实物验证,芯片是EG1120,但是无法实现稳压输出

    你得测试C2两端电压是不是5V

  • 回复了主题帖: 小白动手做了个AD/DC实物验证,芯片是EG1120,但是无法实现稳压输出

    这种3个脚的咋感觉不靠谱,非隔离的还是用[LNK306],这个比较靠谱,毕竟是大厂家的.

  • 回复了主题帖: 画原理图老是很多低级错误

    我每次画板子,都是发出去加工的中途时,脑子里灵光闪现,发现了错误,所以要多打样.

  • 回复了主题帖: 电瓶车铅电池要怎么充电才能获得最长的使用寿命

    随心就好,不要管,想充就充,不管怎么用一般过了3年就要换新电瓶.长期不用的话定期要充电就行.

  • 2024-09-25
  • 回复了主题帖: 小白动手做了个AD/DC实物验证,芯片是EG1120,但是无法实现稳压输出

    接个假负载呢,比如1K电阻

  • 2024-09-23
  • 回复了主题帖: 在PCB铜箔上堆锡能增加多少载流

    目测20A以上

  • 2024-09-14
  • 回复了主题帖: 小白初学汽车CAN总线,需要什么样的硬件条件,有低成本的测试设备推荐吗?

    HO010300 发表于 2024-9-14 08:38 几十块钱的分析仪稳定吗? 简单收发没问题吧,如果数据量很大没试过.

  • 回复了主题帖: 小白初学汽车CAN总线,需要什么样的硬件条件,有低成本的测试设备推荐吗?

    JFET 发表于 2024-9-13 17:00 好用不,真的只需要几十么,从哪买的,您给推荐推荐 不就简单的CAN收发么,类似于串口助手一样的功能 但没有其它功能,例如CAN-OPEN解析. 淘宝上搜[USB转CAN],多的是,50块钱以下的很多.

  • 2024-09-13
  • 回复了主题帖: 小白初学汽车CAN总线,需要什么样的硬件条件,有低成本的测试设备推荐吗?

    我买的一个CAN分析工具,也很简单,便宜,几十块钱,就行了.

  • 2024-09-04
  • 回复了主题帖: 波纹线绕电阻一般能抗多少度?

    100-200度,要看有没有主动风扇冷却

  • 回复了主题帖: TJA1050的VREF脚应该怎么接

    当你需要时你就用,不需要时就不用空着,CAN

  • 回复了主题帖: 远距离无线充电

    只要没有商用就不算真正研发出来,要么成本高,要么效率低。矿石收音机算不算无线充电?多少年前就有了。

  • 2024-08-29
  • 回复了主题帖: >>征集 | 使用 MCU,哪些问题最令你头大?

    本帖最后由 fxyc87 于 2024-8-29 09:17 编辑 在使用低功耗 MCU 时,我遇到的一些问题: **一、功耗控制** 难以准确评估实际功耗,特别是MCU在休眠和运行之间频繁切换时,因为休眠电流在uA级别,运行在mA级别,如果测试仪器动态测量范围不够则难以准确测量出实际功耗。 **二、开发调试** 低功耗模式下调试困难,很多调试功能受限,需特殊调试方法和工具或提前考虑调试需求。市面上的大部分MCU在休眠时是不能进行调试的,但也有部分MCU有做特殊处理在休眠期间也可以进行调试,比如我之前用过的xxxx136系列,休眠时调试器也不会断开,但相比其它的就没这个功能了。 **三、设计规划** 电源管理设计复杂,需精心设计电源管理系统,考虑多种电源情况,增加开发时间和成本。MCU支持的电压越低功耗越低,如果MCU支持1.8V的电压,那么功耗就可以做到更低了。

  • 2024-08-23
  • 回复了主题帖: 现在主流的电车电池是多少并多少串?

    qwqwqw2088 发表于 2024-8-23 11:03 并联,即“几并”的数量,取决于电池组所需的容量和电流输出。 简化的计算方法,不是很精确 ... 但我感觉不是这么简单并,50并,那这50个如何匀衡?我们知道串联他可以做匀衡,并联呢? 感觉应该没有这么多并的

统计信息

已有668人来访过

  • 芯积分:995
  • 好友:4
  • 主题:81
  • 回复:1046

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言