在使用TouchGFX 的时候发现无法使用微库 而时候printf函数则会导致单片机无法正常启动 关闭半主机模式后则能正常运行 添加一下代码即可
__ASM (".global __use_no_semihosting"); //AC6编译器
//定义_sys_exit()以避免使用半主机模式
void _sys_exit(int x)
{
x = x;
}
void _ttywrch(int ch)
{
ch = ch;
}
struct FILE
{
int handle;
};
FILE __stdout;
串口重定向
#define Printf_UART huart1 /* 定义使用的串口 */
/*****************************************************
*function: 写字符文件函数
*param1: 输出的字符
*param2: 文件指针
*return: 输出字符的 ASCII 码
******************************************************/
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&Printf_UART, (uint8_t*)&ch,1,10);
return ch;
}
/*****************************************************
*function: 读字符文件函数
*param1: 文件指针
*return: 读取字符的 ASCII 码
******************************************************/
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&Printf_UART, (uint8_t*)&ch, 1, 10);
return (int)ch;
}