一。printf函数格式

  printf函数具有强大的输出功能

  %表示格式化字符串输出

  目前printf支持以下格式的输出,例如:

  printf("%c",a);输出单个字符。

  printf("%d",a);输出十进制整数。

  printf("%f",a);输出十进制浮点数.

  printf("%o",a);输出八进制数。

  printf("%s",a);输出字符串。

  printf("%u",a);输出无符号十进制数。

  printf("%x",a);输出十六进制数。

  例如:

  n = 15

  printf("The result is %d", n); //通过屏幕输出十进制数15

  n = 15.2

  printf("The result is %f", n); //通过屏幕输出十进制浮点数15

  二。实现方法

  在uart.c文件中加入

  #include "stdio.h"

  //////////////////////////////////////////////////////////////////

  //加入以下代码,支持printf函数,而不需要选择use MicroLIB

  #if 1

  #pragma import(__use_no_semihosting)

  //标准库需要的支持函数

  struct __FILE

  {

  int handle;

  };

  FILE __stdout;

  //定义_sys_exit()以避免使用半主机模式

  _sys_exit(int x)

  {

  x = x;

  }

  //重定义fputc函数

  int fputc(int ch, FILE *f)

  {

  while((USART1->SR&0X40)==0);//把数据通过串口1循环发送,直到发送完毕 ,如果使用串口2,则改成 USART2

  USART1->DR = (u8) ch;

  return ch;

  }

  #endif

  三。主函数中调用printf函数

  int main(void)

  {

  u16 t;

  u16 len;

  u16 times=0;

  delay_init(); //延时函数初始化

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

  uart_init(115200); //串口初始化为115200

  LED_Init(); //LED端口初始化

  KEY_Init(); //初始化与按键连接的硬件接口

  while(1)

  {

  if(USART_RX_STA&0x8000)

  {

  len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度

  printf("\r\n您发送的消息为:\r\n\r\n"); //\r\n为回车换行

  for(t=0;t

  {

  USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据

  while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束

  }

  printf("\r\n\r\n");//插入换行

  USART_RX_STA=0;

  }else

  {

  times++;

  if(timesP00==0)

  {

  printf("\r\n战舰STM32开发板 串口实验\r\n");

  printf("正点原子@ALIENTEK\r\n\r\n");

  }

  if(times 0==0)printf("请输入数据,以回车键结束\n");

  if(times0==0)LED0=!LED0;//闪烁LED,提示系统正在运行.

  delay_ms(10);

  }

  }

  }

  

分享些串口方面的资料便于学习参考

(stm32串口应用)
http://www.makeru.com.cn/live/1392_1164.html?s=45051
PWM脉宽调制技术
http://www.makeru.com.cn/live/4034_2146.html?s=45051
基于STM32讲解串口操作
http://www.makeru.com.cn/live/1758_490.html?s=45051
通过Z-stack协议栈实现串口透传
http://www.makeru.com.cn/live/1758_330.html?s=45051

通过串口利用printf函数输出数据的更多相关文章

  1. 修改HAL标准库用printf函数发送数据直接输出

    主函数文件,请直接关注自己写上去的代码: 直接看43行代码:#include "stdio.h"//要添加这个头文件 还有97行到112行:实现用HAL库函数和printf函数发送 ...

  2. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

  3. C笔记01:关于printf函数输出先后顺序的讲解

    关于printf函数输出先后顺序的讲解!! 对于printf函数printf("%d%d\n", a, b);函数的实际输出顺序是这样的先计算出b,然后再计算a,接着输出a,最后再 ...

  4. 使用fwrite()函数和fprintf()函数输出数据到文件时的区别

    使用书上的一个课后题为例 有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学号,姓名,3们课程成绩),计算出每个学生的平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中. ...

  5. 关于printf函数输出先后顺序的讲解!!

    对于printf函数printf("%d%d\n",a,b);函数的实际输出顺序是这样的先计算出b,然后在计算a,接着输出a,最后在输出b:例子如下:#include<ios ...

  6. SQLServer中利用NTILE函数对数据进行分组的一点使用

    本文出处:http://www.cnblogs.com/wy123/p/6908377.html NTILE函数可以按照指定的排序规则,对数据按照指定的组数(M个对象,按照某种排序分N个组)进行分组, ...

  7. 解决IAR printf函数输出中文字符乱码问题

    首先看一下IAR的中文字符的坑 这会对调试造成很大的干扰,因为眼见不一定为实. 你所期望的中文打印输出都成了乱码,心在滴血.... 解决方法详细,纯属个人摸索 1.新建notepad++文件,编码方式 ...

  8. c++用流控制成员函数输出数据

    #include<iostream> #include<iomanip> using namespace std; int main() { ; double b=314159 ...

  9. [STM32F10x] 使用printf函数进行串口调试问题

    硬件:STM32F103C8T6 平台:Keil ARM-MDk V5.11 利用printf函数通过串口(USART)进行调试时遇到的一个问题: printf("Hello, Mini-M ...

随机推荐

  1. js不同地图坐标系经纬度转换(天地图,高德地图,百度地图,腾讯地图)

    1.js转换代码 1 //转换常数 2 var x_pi = 3.14159265358979324 * 3000.0 / 180.0; 3 var pi = 3.14159265358979324; ...

  2. Alibaba《Java开发手册》之Java代码规范笔记

    前言 一种工具被发明出来,那么针对这种工具的各种使用规则.条条框框就随之而来.无规矩不成方圆,无制度则无国家,无风格不成代码!治国有国法.排兵布阵有章法.那么写代码也有它界内通用的不成俗的约定.最近刚 ...

  3. 【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析

    不提XXLJOB或者其他的调度框架,就看我接触的第一个任务调度框架Quartz(温故而知新) Quartz的动态暂停 恢复 修改和删除任务 实现动态添加定时任务,先来看一下我们初步要实现的目标效果图, ...

  4. Java集合:HashMap

    Hashmap是一个存储key-value的映射表. 优点: 索引数据快,查找一个数据对的时间复杂度是O(1) 增加.删除一个数据的时间复杂度是O(1) key不能重复,可以存储一个null值 存储: ...

  5. POJ3625Building Roads

    Building Roads Description Farmer John had just acquired several new farms! He wants to connect the ...

  6. k8s工作负载资源之deployment

    首先我们要理解:一个应用跑在k8s集群上了,那么这个应用就是一个工作负载(workloads). 在k8s中会用pod的来承载这个应用,那么负责管理这个pod的东西就叫工作负载资源(workload ...

  7. Linux系列(26) - 强制杀死进程

    查进程 ps  -ef ps -aux #上述两个均可 例子:ps -ef | grep "vim canshu2" 强杀进程 kill -s 9 进程id #命令格式 例子:ki ...

  8. 做PPT总是很难找到好看、有质感的图片,怎么办?

    1.制作PPT时,要想提升整体质感,就需要插入一些图片.当你进入到这个阶段,就意味着你剩下用来做PPT的时间,可能比较紧张了.所以,你的重中之重是,在最短的时间内找到合适的照片. 2.想快速找到好看. ...

  9. sublime text 3 在Windows下配置sublimelinter-php的路径问题

    首先用package control安装sublimelinter和sublimelinter-php,然后依次点击菜单preference-package settings-sublimelinte ...

  10. 定要过python二级 选择题第四套

    1. 2. 3. 4. 5. 6. python用于人工智能 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.