• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > [stm32]无法使用printf进行串口输出

[stm32]无法使用printf进行串口输出

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了stm32 printf串口,stm32printf,stm32 printf重定向,stm32 printf函数,stm32 printf用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:[stm32]无法使用printf 进行串口输出
描述:

main.c


#include <main.h>
int main(){
System_Init();
while(1){
printf("a");
delay_ms(1000);
//USART_SendData(USART1,'a');
}
// return 0;
}

main.h

#include <stm32f10x.h>
#include <delay.h>
#include <usart.h>
void System_Init(void){
SystemInit();
Usart_Config();
}

usart.h

#ifndef _USART_H
#define _USART_H
#include "stm32f10x.h"
#include <stdio.h>
void Usart_Config(void);
int fputc(int ch, FILE *f);
//void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...);
#endif

usart.c

#include "usart.h"
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
return ch;
}
void Usart_Config(){
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1/*|RCC_APB2Periph_AFIO*/,ENABLE);
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽式输出
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//模拟输入
GPIO_Init(GPIOA,&GPIO_InitStructure);
USART_InitStructure.USART_BaudRate=9600;/*设置波特率*/
USART_InitStructure.USART_WordLength=USART_WordLength_8b;/*设置传送数据长度*/
USART_InitStructure.USART_StopBits=USART_StopBits_1;/*设置停止位的长度*/
USART_InitStructure.USART_Parity=USART_Parity_No;/*设置是否需要检验*/
USART_InitStructure.USART_HardwareFlowC/*设置硬件流*/
USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;/*设置串口模式*/
USART_Init(USART1,&USART_InitStructure);
USART_Cmd(USART1,ENABLE);
}

以上是代码  进入模拟后 会卡在 POP {r3,pc}这一行
USART_SendData(USART1,'a'); 如果用这个函数输出 就正常 可以正常的发送  但是用printf 就不行了,都进入不到while(1)里面


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • [stm32]无法使用printf进行串口输出

相关文章

  • 2017-06-05 关于数据报的过滤与修改的问题。
  • 2017-06-05 windows2000/xp/NT下如何用WDM实现单任务
  • 2017-06-05 关于68013A用过的请帮忙[img=http://forumcsdnnet/PointForum/ui/scripts/csdn/Plugin/001/
  • 2017-06-05 为什么液晶显示器1602必须建立2个工程才行?
  • 2017-06-05 我要分析USB通信协议,也就是得到USB设备与PC的具体通信过程,可以用单片机或其他嵌入式开发板完成吗
  • 2017-06-05 有关Redhat默认网关的问题
  • 2017-06-05 VxWorks653的xml配置
  • 2017-06-05 关于连接的错误LinkError:FixupOverFlow
  • 2017-06-05 有没有人对数码相机与pc的通信协议比较了解的?
  • 2017-06-05 急!求讲解张帆《Windows驱动开发技术详解》的虚拟串口驱动,求讲解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 我怎么发不了贴字阿,发完之后老是找不到阿,谁能帮我?
    • 初级问题:ddk程序link出错?
    • 如何在万网修改DNS地址到DNSPod?
    • 关于Kirp的迷惑!请指点
    • 棘手的E2ROM存储问题
    • Windriver603处理9054中断问题
    • MC9S12X128对flash进行读写,为什么报错?
    • 请问撰写学驱动程式需要什么基础?
    • arm-linux-gcc交叉编译的问题(其中用到了共享内存)
    • 无线打印服务器的设计?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有