STM32利用C语言重定向printft到Usart1。可利用printf函数实现打印功能,在串口调试助手上显示。
C语言代码为:
//加入以下代码,支持printf函数,不需要选择use MicroLIB(Option->Target->Use MicroLIB(勾选))
#if 1
#pragma import(__use_no_semihosting)
struct __FILE
{
int handle;
};
FILE __stdout;
_sys_exit(int x)
{
x = x;
}
int fputc(int ch, FILE *f)
{
while((USART1->SR&0X40)==0);
USART1->DR = (u8) ch;
return ch;
}
#endif
STM32利用C++语言重定向cout到Usart1。可利用cout对象实现打印功能,在串口调试助手上显示。
C++语言代码为:
#if 1
//非半主机模式
#pragma import(__use_no_semihosting_swi)
namespace std{
struct __FILE
{
int handle;
};
FILE __stdout;
FILE __stdin;
FILE __stderr;
//FILE *fopen(const char * __restrict /*filename*/,
// const char * __restrict /*mode*/)
// {
// usart1<<"\n\r fopen. \n\r";
// return NULL;
// }
int fputc