如题:
我使用TI公司的MSP430芯片 +IAR环境进行开发。
描述:
未使用FreeRTOS,printf函数正常输出。以下就是我的重定向函数:
int putchar(int ch){
if (ch == '\n') {
UCA1TXBUF = 0x0d;
while (!(UCA1IFG & UCTXIFG));
}
UCA1TXBUF = ch;
while (!(UCA1IFG & UCTXIFG));
return (ch);
}
使用FreeRTOS后,printf函数无法打印。
备注1:由于我的printf函数仅在一个任务中使用(仅在该任务中使用printf函数,并且printf重定向所使用的串口也没有用作其它用途),因此我没有对printf函数以及其资源进行资源保护。
备注2:在任务中调用printf函数添加临界区保护也没有任何作用,相关代码如下:
portENTER_CRITICAL();
printf("test\r\n");
portEXIT_CRITICAL();
请各位大神帮忙分析下:为什么printf函数不能打印?不胜感激!
任务栈的 size设置的稍微大一些。
可以尝试直接用串口打印输出,看看行不行
一周热门 更多>