打印

freertos二值信号量问题

[复制链接]
1709|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
紫电2000|  楼主 | 2017-5-22 14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家谁用过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");
                        }

        }
}
现在问题是,中断中一直不产生信号量,
谁知道什么原因啊

相关帖子

沙发
airwill| | 2017-5-23 21:06 | 只看该作者
这么简单一段代码, 为啥不用调试器跟踪一下呢, 看看中断被触发执行了么?

使用特权

评论回复
板凳
LMCH| | 2017-5-27 09:12 | 只看该作者
觉得也该看看中断到底触发了没有

使用特权

评论回复
地板
djyos| | 2017-5-27 10:26 | 只看该作者
你确认中断里能用printf函数?

使用特权

评论回复
5
freeelectron| | 2020-2-14 14:24 | 只看该作者
按键中断里面加打印看看中断产生了没?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

1

粉丝