STM32F103 使用USART3 的printf()方法

本文介绍了如何修改STM32F103的int fputc()函数,以使用USART3代替原有的USART1进行printf()函数的串口输出。通过更新配置函数Usart3Config(),设置GPIO、NVIC和USART3参数,实现了串口3的正常通信。
摘要由CSDN通过智能技术生成

对于如何使用USART2或者USART3串口的printf()函数,查阅了网上的很多文章,感觉都很麻烦,于是就自己尝试修改原有串口的int fputc(int ch,FILE *p)函数,

原函数int fputc(int ch,FILE *p)
{
    USART_SendData(USART31,(u8)ch);
    while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
    return ch;
}

使用的是USART1

修改后:int fputc(int ch,FILE *p)
{
    USART_SendData(USART3,(u8)ch);
    while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET);
    return ch;
}

使用的是USART3,经测试输出正常。

USART3的配置函数:

void Usart3Config(u32 baud)
{
    GPIO_InitTypeDef GPIO_InitStructure;      //结构体变量初始化
  USART_InitTypeDef USART_InitSrtucture;
    NVIC_InitTypeDef NVIC_InitStructure;    //NVIC配置
    
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能端口时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值