创建工程首先要加入宏定义

1.  USE_HAL_DRIVER,    

  表明用HAL库来操作stm32单片机底层。

2.  STM32H750xx,

  表明单片机类型为H750。

3.  __GUNC__

  表明用的是V6 的complier。

 

如果用网上四处可见的v5版重定向例子,则会报错

../Source/sys/usart/usart.c(23): error: redefinition of '__FILE'

struct __FILE 

d:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdio.h(119): note: previous definition is here

struct __FILE {

原因是 v6与v5的不兼容。

 

更正方法为以下:

__asm (".global __use_no_semihosting\n\t");
void _sys_exit(int x) //避免使用半主机模式
{
x = x;
}
//__use_no_semihosting was requested, but _ttywrch was
void _ttywrch(int ch)
{
ch = ch;
}
void _sys_command_string(char* cmd,int len)
{
len =len;
}
FILE __stdout;
//重定义fputc函数
int fputc(int ch, FILE *f)
{
while((UART5->ISR&0X40)==0);//循环发送,直到发送完毕
UART5->TDR=(u8)ch;
return ch;
}

posted on 2023-05-12 21:36  __诗酒趁年华  阅读(265)  评论(0编辑  收藏  举报