想在while(1)里面用printf将数据输出到串口,因此对prinf函数的fputc函数进行重定义,如下:
int fputc(int ch, FILE *f)
{
#ifdef DBG_ITM
/* 将Printf内容发往ITM激励寄存器端口 */
if (DEMCR & TRCENA) {
while (ITM_Port32(0) == 0);
ITM_Port8(0) = ch;
}
#else
/* 将Printf内容发往串口 */
USART_SendData(USART1, (unsigned char) ch);
while (!(USART1->SR & USART_FLAG_TXE));
#endif
return (ch);
}
但是仅仅如此定义的话,printf的内容还是输出不到串口,恳请指教是否还有另外一些需要配置的?如果能帮助解决这问题,定高分奖赏,谢谢!
你这个应该通过ITM来传输数据吧?可以参考这个链接:网页链接