• STM32开发 printf和scanf函数的重定向——修改HAL标准库用printf函数发送数据直接输出


    首先在main.c文件中添加标准输入输出库

    #include <stdio.h>

    然后在stm32cubemx生成的文件中,找到usart.c文件,在后面添加如下代码

    #include "stdio.h"
    #include "stm32f1xx_hal.h"
    
    //这个变量是其他.c文件定义的
    extern UART_HandleTypeDef huart1;
    uint8_t ch;
    uint8_t ch_r;
    //重写这个函数,重定向printf函数到串口,意思就是说printf直接输出到串口,其默认输出到控制台的
    /*fputc*/
    int fputc(int c, FILE * f)
    {
    ch=c;
    HAL_UART_Transmit(&huart1,&ch,1,1000);//发送串口
    return c;
    }
    
     
    
    //重定向scanf函数到串口 意思就是说接受串口发过来的数据,其默认是接受控制台的数据
    /*fgetc*/
    int fgetc(FILE * F)
    {
    HAL_UART_Receive (&huart1,&ch_r,1,0xffff);//接收
    return ch_r;
    }
    

      

  • 相关阅读:
    BZOJ 1631 Cow Party
    BZOJ 1927 星际竞速
    BZOJ 4059 Non-boring sequences
    BZOJ 1562 变换序列
    BZOJ 4417 超级跳马
    484586
    背板问题之满包问题
    对01背包路径的记录
    带权值的图 BFS
    漫步校园 杭电1428
  • 原文地址:https://www.cnblogs.com/wind-under-the-wing/p/13796288.html
Copyright © 2020-2023  润新知