STM32串口复用关系&printf重定义
串口复用
什么是普通功能输入输出?普通功能输入输出类似于:大厅<—>门<—>室外的关系,大厅只需要经过大门即可到室外,从室外经过门也可以到达大厅。
什么是复用工功能输入输出?复用功能输入输出类似于:房间<—>大厅<—>门<—>室外的关系;从房间到室外,需要经过大厅,在经过大门才可以到达室外;从室外到房间,也需要经过大门。

printf重定义
将usart 配置之后 更改fputc函数,直接在代码中构建fputc函数。
int fputc(int ch, FILE *f){
GPIO_SetBits(GPIOA, GPIO_Pin_11);// 接收
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);//数据从缓冲区拿走到移位寄存器 标志缓冲区为空
USART_SendData(USART1,(u16)ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);//数据送到TX总线上 标志发送完成
GPIO_ResetBits(GPIOA, GPIO_Pin_11);// 发送
return (ch);
}
PS. STM32复用关系引用的是CSDN博主「Jahol Fan」的原创文章。
原文链接:https://blog.csdn.net/Jahol_Fan/article/details/78191173
STM32串口复用关系&printf重定义的更多相关文章
- C++中重定义的问题——问题的实质是声明和定义的关系以及分离式编译的原理
这里的问题实质是我们在头文件中直接定义全局变量或者函数,却分别在主函数和对应的cpp文件中包含了两次,于是在编译的时候这个变量或者函数被定义了两次,问题就出现了,因此,我们应该形成一种编码风格,即: ...
- c++继承关系中成员函数的重载、重写、重定义之间的区别
1.Override.Overload.Redefine Overload 重载只能发生在类内部,不能发生在子类和父类的继承中.具体来说,如果子类中有父类同名.同返回值类型,但是不同参数列表,这两个在 ...
- STM32串口寄存器操作(转)
源:STM32串口寄存器操作 //USART.C /************************************************************************** ...
- Stm32串口通信(USART)
Stm32串口通信(UART) 串口通信的分类 串口通信三种传递方式 串口通信的通信方式 串行通信的方式: 异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束.其每帧的格式如下: 在一帧格 ...
- stm32串口通信实验,一点笔记
第一次深入学习stm32,花了好长时间才看懂代码(主要是C语言学习不够深入),又花了段时间自己敲了一遍,然后比对教程,了解了利用中断来串口通信的设置方法. 板子是探索版f407,本实验工程把正点原子库 ...
- STM32—串口通讯详解
串口通讯目录 物理层 协议层 USART简介 开发板与上位机的连接 代码讲解: 一.初始化结构体 二.NVIC配置中断优先级 三.USART配置函数讲解 四.传输数据的函数: 1.发送一个字节 2.发 ...
- stm32串口学习(一)
串口在工作中经常用到,今天我们从零开始学习stm32的串口编程(利用库函数). 先从最简单的情况开始,假设我们要实现的功能就是串口发送一个字节,不考虑接收,也不考虑中断. 那么要解决两个问题: 1 串 ...
- STM32串口USART通信总结
一.GPIO设置USART的初始化 /**************************实现函数******************************************** *函数原型: ...
- 重载重写重定义-易混淆概念-C++编译器处理方式
1.函数重载 1)必须在同一个类中进行. 2)子类无法重载父类的函数,父类同名函数将被名称覆盖 3)重载是在编译期间根据参数类型和个数决定函数调用 2.函数重写 1)必须发生于父类与子类之间 2)并且 ...
随机推荐
- gym102222 G. Factories
gym102222 G. Factories 地址 题目大意: 给一棵n个点的树,选m个点,这m个点只能在叶子节点上,问着m个点中两两之间到达其余各点的距离和最小值是多少题解:任意两点的树上距离和问题 ...
- 前端零基础入门:页面结构层HTML(2)
学习笔记 若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理. 请点赞!因为你们的赞同/鼓励是我写作的最大动力! 欢迎关注达达的简书! 这是一个 ...
- 一起学Makefile(六)
命令的回显: 通常,make在执行命令之前都会把执行的命令进行输出,例如: 关闭命令回显有以下几种方式: 每个需要关闭回显的命令行之前加上”@”符号: 执行make时机上参数-s 或 –slient进 ...
- JavaScript var、let、const
var申明的变量是有作用域的 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量: 'use strict'; function foo() { var x = 1; ...
- shell for循环输出目录下的文件名
test.sh文件: #!/bin/bash for file in `ls`;do echo $file done 输出 bogon:test macname$ chmod +x test.sh b ...
- 报表导出之easypoi的应用
报表导出有很多种方法,像之前我有写过的jxl,poi,jasperreport又或者各种商业软件,这次来简单介绍下用了许久的开源轮子easypoi. easypoi的底层原理就不介绍了.因为官方文档的 ...
- win10重装win7 无法引导
品牌机win10回滚win7 无法引导 BIOS设置 按键盘上的右方向键(→)选择到"Exit" 按键盘上的下方向键(↓)选择到 "OS Optimized Defaul ...
- ansible-playbook--jia使用
#cat jia.yml - hosts: test-gfs user: dev gather_facts: true vars: PORT: "3306" MESAGE: &qu ...
- SAS 分层抽样示例代码
PROC SURVEYSELECT DATA=B OUT=C(DROP=SelectionProb SamplingWeight) METHOD=SRS SEED=100 SAMPSIZE=1; ST ...
- vs2017+qt5.x编译32位应用<转>
原文地址:https://www.cnblogs.com/woniu201/p/10862170.html 概述 最近有同学私信我,问如何使用vs2017+qt5.10编译出32位的应用,需要使用ms ...