大家谁用过freertos系统啊,
我遇到这样一个问题,
就是按键时,产生一个信号量,然后
有一个任务一直等待这个信号量,
代码如下
//按键中断代码,里面产生信号量
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
static BaseType_t xHigherPriorityTaskWoken;
xHigherPriorityTaskWoken = pdFALSE;
printf("button is working!\r\n");
xSemaphoreGiveFromISR( BinarySemaphore, &xHigherPriorityTaskWoken );
if((xHigherPriorityTaskWoken != pdFALSE))
{
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}
}
//任务中等待信号量
void Task1(void *data)
{
BaseType_t err=pdFALSE;
while (1)
{
if(BinarySemaphore!=NULL)
{
err=xSemaphoreTake(BinarySemaphore,0xFFFF); //»ñÈ¡ÐźÅÁ¿
}
if(err==pdTRUE)
{
printf("receive BinarySemaphore success!\r\n");
}
}
}
现在问题是,中断中一直不产生信号量,
谁知道什么原因啊 |