基于esp32 平台 。
参考:
https://www.freertos.org/fr-content-src/uploads/2018/07/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf
#include <inttypes.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "freertos/semphr.h"
#include "freertos/event_groups.h"
SemaphoreHandle_t semaphore;
void send(void *p) {
while (1) {
vTaskDelay(pdMS_TO_TICKS(1000));
xSemaphoreGive(semaphore);
printf("xSemaphoreGive\n");
}
}
void receive(void *p) {
while (1) {
xSemaphoreTake(semaphore,pdMS_TO_TICKS(1000000));
printf("xSemaphoreTake\n");
}
}
void app_main(void) {
semaphore = xSemaphoreCreateBinary();
xTaskCreate(&send, "xSemaphoreGive", 2048, NULL, configMAX_PRIORITIES-1, NULL);
xTaskCreate(&receive, "xSemaphoreTake", 2048, NULL, 0, NULL);
return;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)