stm32——freeRTOS中断管理

中断定义:

        参考之前发的c51博文

中断优先级:

        任何中断的优先级都大于任务。

        在我们的系统,中断同样是具有优先级的,并且我们也可以设置它的优先级,但是他的优先级并不是从0-15,默认是从5-15,0-4这5个中断优先级不是freeRTOS控制的(5是取决于configMAX_SYSCALL_INTERRUPT_PRIORITY(默认是5))

注意:

        在中断中必须使用中断相关的函数;

        中断服务函数运行时间越短越好。

实操:

 实验需求:

        创建一个队列及一个任务,按下按键KEY1触发中断,在中断服务函数里向队列发送数据,任务则阻塞接收队列数据。

cubeMX

1、设置KEY1中断

stm32——freeRTOS中断管理_第1张图片

 2、设置一个任务,1个队列

stm32——freeRTOS中断管理_第2张图片

 keil5

        重写中断回调函数:

stm32——freeRTOS中断管理_第3张图片 stm32——freeRTOS中断管理_第4张图片

stm32——freeRTOS中断管理_第5张图片

 重写回调函数,中断方式往队列中发送内容

stm32——freeRTOS中断管理_第6张图片

在创建的任务中,读取队列中的内容

stm32——freeRTOS中断管理_第7张图片

 运行结果:当按下key1时触发中断,往队列中写入信息,任务接收到队列,接收到打印处理

stm32——freeRTOS中断管理_第8张图片

 

你可能感兴趣的:(freeRTOS,stm32)