-
有很多文件是MDK的特有文件,将其从MDK软件目录复制出来,比如说像stdint.h stdio.h string.h等等,否则也会找不到的。
-
是有好多温度传感器是以脉冲输出的,其实很简单啊,用MCU的定时器,输入源设为外部时钟就可以了,
-
bigbat 发表于 2024-12-9 16:54
我今天下午收到板子了,FRDM-MCXA156开发板,加紧时间适用不知道需要在哪里发帖子
我选的是N947板子
-
bigbat 发表于 2024-12-4 09:14
呵呵,我和你的待遇是一样地。也是没有任何的反馈。你给不给板子发个消息也行啊
最近:就在刚刚周六晚上,收到了板子,准备发个贴讲讲板子试用进度,一起互相学习。
-
我通过了,发了地址,但好像一周多过去了也没提示发货或收到收件信息。
-
最大优先级是多少?你配置的线程优先级超过了最大值,好像默认值一般是8吧,
-
Dp1,Dn1 ,Dn2,Dp2不是两组,是1组,因为TYPE-C是支持正反插的,实际上只有2根1对差分。 A2\A3\A10\A11如果不用USB 3.0信号是可以用做其它目的的,但一般不这么玩,万一别人插上了USB 3。0设备,你的板子引脚不是烧了么?
-
你如果量大当然可以自己搞MCU驱动,否则没必要。
-
HID不就行了?
-
当然最新的U系列了
-
我只是大自然的搬运工
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`表示一直等待,直到信号量可用,或者使用其他较短的时间值来实现有限时间的等待。
-
LIN还需要转串口么?直接串个电阻,再弄个稳压管直接就进TTL引脚上去不就行了?
-
十多年前入门单片机就学的它,也是周立功的,官网有资料,很全的。
-
其实我一直在想变压器能不能像电阻电容一样,搞成标准件,像普通电感一样,
比如我搞个20W的变压器,3绕组,主绕组,反馈,供电。弄个标准件,有个规范,所有厂家都按这个规范搞。
否则每个人都要厂变压器厂家订制,量少还麻烦。
-
TWAI就是CAN啊
-
Dxiaobai 发表于 2024-9-26 09:20
关键是公司要一版成
告诉 他,一版成神仙也办不到.
-
你得测试C2两端电压是不是5V
-
这种3个脚的咋感觉不靠谱,非隔离的还是用[LNK306],这个比较靠谱,毕竟是大厂家的.
-
我每次画板子,都是发出去加工的中途时,脑子里灵光闪现,发现了错误,所以要多打样.
-
随心就好,不要管,想充就充,不管怎么用一般过了3年就要换新电瓶.长期不用的话定期要充电就行.