问题:每次接收间隔6秒左右,知道问题原因的请留言
/*
串口中断函数
*/
void vUARTInterrupt_Handler( void )
{
char cChar;
/*发送*/
// if(UART2->UARTMIS & (1UL << UART_TXInt))
// {
// /* The interrupt was caused by the THR becoming empty. Are there any
// more characters to transmit? */
// if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )
// {
// /* A character was retrieved from the queue so can be sent to the
// THR now. */
// UART2->UARTWrDR = (unsigned int)cChar;
// }
// else
// {
// UART_IntMaskConfig( UART2, UART_TXInt, ENABLE );
// }
//}
/*接收*/
//判断中断标志位
if(UART2->UARTMIS & (1UL << UART_RXInt))
{
//非阻塞方式接收
cChar = UART_RXDATA(UART2);
//非阻塞方式发送
// UART_TXDATAConfig(UART2,(unsigned int)cChar);
//查询方式发送
UartPollingSenddata(UART2,cChar);
}
//清除中断标志位
UART_IntClear(UART2,UART_AllInt);
}
/*
用户初始化
*/
void User_init(void)
{
//设置串口2中断优先级
eclic_irq_set_priority(UART2_IRQn, 2, 0);
//设置串口2中断为向量表中断
eclic_set_vmode(UART2_IRQn);
//关联串口2中断函数
__eclic_irq_set_vector(UART2_IRQn, (int32_t)vUARTInterrupt_Handler);
//使能串口2中断
eclic_irq_enable(UART2_IRQn);
//串口2配置为中断模式,波特率921600
UARTInterruptConfig(UART2,UART_BaudRate921600);
}
/*
用户主程序任务
*/
static void User_main(void *p_arg)
{
while (1)
{
//延时1000ms
vTaskDelay(1000);
}
//注销当前任务
vTaskDelete(NULL);
}
/**
* @brief
*
*/
int main(void)
{
hardware_default_init();
/*平台相关初始化*/
platform_init();
//用户初始化
User_init();
/* 版本信息 */
welcome();
/* 创建启动任务 */
xTaskCreate(task_init,"init task",280,NULL,4,NULL);
//创建用户主程序任务
xTaskCreate(User_main,"User main",280,NULL,4,NULL);
/* 启动调度,开始执行任务 */
vTaskStartScheduler();
while(1){}
}