のんの 2019-03-28 21:47 采纳率: 0%
浏览 1269

为什么我包含了stdio.h,也重新定向到了C库函数,但进行stm32和电脑的串口实验中,printf语句还是没有执行?

#include "stm32f10x.h"
#include "LED.h"
#include "USART.h"
#include "stdio.h"
void Show_Message(void);
char ch;
int main(void)
{
/* 初始化RGB彩灯 */
LED_GPIO_Config();

/* 初始化USART 配置模式为 115200 8-N-1 */
USART_Config();

/* 打印指令输入提示信息 /
Show_Message();
while(1)
{
char ch;
/
获取字符指令 */
ch=getchar();
printf("接收到字符:%c\n",ch);

/* 根据字符指令控制RGB彩灯颜色 */
switch(ch)
{
  case '1':
    LED_RED;
  break;
  case '2':
    LED_GREEN;
  break;
  case '3':
    LED_BLUE;
  break;
  case '4':
    LED_YELLOW;
  break;
  case '5':
    LED_PURPLE;
  break;
  case '6':
    LED_CYAN;
  break;
  case '7':
    LED_WHITE;
  break;
  case '8':
    LED_RGBOFF;
  break;
  default:
    /* 如果不是指定指令字符,打印提示信息 */
    Show_Message();
    break;      
}   

}
}

static void Show_Message(void)
{
printf("\r\n 这是一个通过串口通信指令控制RGB彩灯实验 \n");
printf("使用 USART 参数为:%d 8-N-1 \n",DEBUG_USART_BAUDARATE);
printf("开发板接到指令后控制RGB彩灯颜色,指令对应如下:\n");
printf(" 指令 ------ 彩灯颜色 \n");
printf(" 1 ------ 红 \n");
printf(" 2 ------ 绿 \n");
printf(" 3 ------ 蓝 \n");
printf(" 4 ------ 黄 \n");
printf(" 5 ------ 紫 \n");
printf(" 6 ------ 青 \n");
printf(" 7 ------ 白 \n");
printf(" 8 ------ 灭 \n");

}

这是main.c里的。本来是模仿秉火的程序写的,但结果串口发数据可以控制灯的状态,但printf后面的内容却没法在串口助手上显示,后来几乎是把源代码都复制了过来,还是显示不了。源代码就可以在串口助手上显示printf语句内的内容,keil的微库我也勾选了。是不是我的keil哪里还没有设置好?

  • 写回答

1条回答 默认 最新

  • 「已注销」 2019-03-29 10:28
    关注

    usart.c

    //加入以下代码,支持printf函数,而不需要选择use MicroLIB    
    #if 1
    #pragma import(__use_no_semihosting)             
    //标准库需要的支持函数                 
    struct __FILE 
    { 
        int handle; 
    
    }; 
    
    FILE __stdout;       
    //定义_sys_exit()以避免使用半主机模式    
    void _sys_exit(int x) 
    { 
        x = x; 
    } 
    //重定义fputc函数 
    int fputc(int ch, FILE *f)
    {      
        while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
        USART1->DR = (u8) ch;      
        return ch;
    }
    #endif 
    
    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常