STM32串口复用关系&printf重定义
2024-10-20 11:36:34
串口复用
什么是普通功能输入输出?普通功能输入输出类似于:大厅<—>门<—>室外的关系,大厅只需要经过大门即可到室外,从室外经过门也可以到达大厅。
什么是复用工功能输入输出?复用功能输入输出类似于:房间<—>大厅<—>门<—>室外的关系;从房间到室外,需要经过大厅,在经过大门才可以到达室外;从室外到房间,也需要经过大门。
1) 当给TDR寄存器赋值时,数据会通过移位寄存器发送到芯片外部
2) 接收数据时是一位一位的接收,当接收到8位数据时,数据会从“接收移位寄存器”搬到“接收数据寄存器”RDR。
3) 每一个IO管脚的复用功能有很多,都是由“GPIO 复用功能寄存器 ”来进行选择。
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
最新文章
- asp.net 后台实现删除,划掉效果
- Hibernate缓存原理与策略 Hibernate缓存原理:
- 重新想象 Windows 8 Store Apps (56) - 系统 UI: Scale, Snap, Orientation, High Contrast 等
- Linux autoconf和automake使用
- 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
- eclipse 好用的插件安装地址集合【持续更新】
- 工作7年,从《一个苏州IT人的5年挨踢经历》系列开始,博客1年半,纯纪念
- 数字信号处理与音频处理(使用Audition)
- 14.6.2 Configuring InnoDB for Read-Only Operation
- HDOJ/HDU 2700 Parity(奇偶判断~)
- jquery easyui+layer后台框架
- 浏览器缓存相关http头
- 在Sharepoint中批量删除大量条目
- Lucene站内搜索的设计思路
- html精确定位
- 前端开发必备之chrome插件
- 解决Apache配置虚拟主机时出现403错误的问题
- lvm再次学习
- Android自动化测试探索
- ApiPost的环境变量的定义和使用「ApiPost环境变量」
热门文章
- netflix conductor 学习(一)docker-compose 运行
- 【CF55D】Beautiful numbers
- 【Gamma】Scrum Meeting 1 &; 与助教谈话
- 投稿SCI杂志 | 如何撰写cover letter | 如何绘制illustrated abstract
- 6条shell小技巧,让脚本显得不再业余【转】
- 各种字符串Hash函数(转)
- 5G网络类型 ?
- Vscode 修改主题颜色
- JS项目快速压缩(windows平台)
- 如何防止Hangfire重复作业在连续执行30分钟后重新启动(How to prevent a Hangfire recurring job from restarting after 30 minutes of continuous execution)