|
这是中断程序:
u8 V1alueToSend;//发送变量
BaseType_t x1HigherPriorityTaskWoken = pdFALSE;
/*接收中断处理*/
if(USART_GetITStatus(DVR_UART, USART_IT_RXNE) != RESET)
{
//取出数据,同时也是清除中断标记
USART_ITConfig(DVR_UART,USART_IT_RXNE,DISABLE);
V1alueToSend=DVR_UART->SR;
V1alueToSend=DVR_UART->DR;
USART_ITConfig(DVR_UART,USART_IT_TC,ENABLE);
xQueueSendFromISR(DVR_Usart,&V1alueToSend,&x1HigherPriorityTaskWoken);//发送到队尾的数据
USART_ITConfig(DVR_UART,USART_IT_TC,DISABLE);
USART_ITConfig(DVR_UART,USART_IT_RXNE,ENABLE);
}
这是接收程序:
u8 x4received;
portBASE_TYPE x4Status;
pvParameters = pvParameters;
x4Status=xQueueReceive(DVR_Usart,&x4received,2);
if(x4Status==pdPASS) [sub][/sub][sup][/sup][strike][/strike] |
|