2 串口打印重定向,不勾选MicroLib程序不运行问题解决
[复制链接]
GD32L23x的固件包的例程并非完全匹配GD32L23x-START板子的,需要修改几个地方来适配,
1、LED1-4的IO需要修改,左侧为START板原理图,右侧为“gd32l233r_eval.h”文件引脚映射。
2、USB转串口需要修改为USART0,左侧为START板原理图,右侧为“gd32l233r_eval.h”文件引脚映射。
3、在main.c最后附上下面代码,解决不勾选"MicroLib"半主机模式导致程序不运行问题。
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
while (1)
{
}
}
#endif
//半主机
#if !defined(__MICROLIB)
//#pragma import(__use_no_semihosting) //AC
__asm(".global __use_no_semihosting\n\t");
void _sys_exit(int x)
{
x = x;
}
void _ttywrch(int ch)
{
ch = ch;
}
FILE __stdout;
/*
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAE_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
usart_data_transmit(START_COM, (uint8_t)ch);
while(RESET == usart_flag_get(START_COM, USART_FLAG_TBE));
return ch;
}
*/
#endif
修改好的gd32l233r_start.h,gd32l233r_start.c,添加到工程中,移除原来的gd32l233r_eval.h、gd32l233r_eval.c,main.c中的头文件及函数名称需要修改一下。
gd32l233r_start.h
(4.79 KB, 下载次数: 3)
gd32l233r_start.c
(7.68 KB, 下载次数: 4)
4、按上面的步骤修改后,编译下载,按键、LED、USB串口打印都能正常使用了。
|