打印

usart中printf问题

[复制链接]
250|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第三章|  楼主 | 2019-11-16 18:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在配置USART中,要使用printf函数,是不是只要在usart.c中或者其他文件中加下面程序就行了,不用再设置其他的吧

#if 1
#pragma import(__use_no_semihosting)            
//标准库需要的支持函数                 
struct __FILE
{
        int handle;
        /* Whatever you require here. If the only file you are using is */
        /* standard output using printf() for debugging, no file handling */
        /* is required. */
};
/* FILE is typedef’ d in stdio.h. */
FILE __stdout;      
//定义_sys_exit()以避免使用半主机模式   
_sys_exit(int x)
{
        x = x;
}
//重定向fputc函数
//printf的输出,指向fputc,由fputc输出到串口
//这里使用串口1(USART1)输出printf信息
int fputc(int ch, FILE *f)
{      
        while((USART1->SR&0X40)==0);//等待上一次串口数据发送完成  
        USART1->DR = (u8) ch;              //写DR,串口1将发送数据
        return ch;
}
#endif


我遇到的问题是:调试时运行到printf时就卡死了,程序调到了B处

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

380

主题

380

帖子

0

粉丝