USART相关问题
最近发现一个FT232+stm32的USB转串口问题,不能理解,记录下来。
PC和STM32通讯,USB-B连接,连接方式如下所示:

上图为USB口引出USB_N/USB_P/USB_EN三个PIN脚接到STM32,但是USB_N/USB_P这两个PIN脚有差分线传输的情况,(差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相反。在这两根线上传输的信号就是差分信号。差分信号在高速电路设计中应用越来越广泛,如USB、HDMI、PCI、DDR*等,承载差分信号的差分线主要优势有:抗干扰能力强,能有效抑制EMI、时序定位精确等)

接到UART1的 RTS和CTS及PC10脚。

UART的TX和RX收发分别连接到FT232上,但USB_N/USB_P这两个PIN脚的差分信号USBL_N和USBL_P接到FT232的USBDM和USBDP,为什么不直接接到FT232上面,反而是差分一下一端接STM32一端接FT232这是什么骚操作,不能理解。
-------------------------------------------------分割线-----------------------------------------------------------
正常USB转串口FT232和STM32连接如下所示:



(stm32) (FT232) (USB)
RX---------------------TXD USBDM---------------D+
TX---------------------RXD USBDP---------------D-
-------------------------------------------------分割线-----------------------------------------------------------
一、关于RTS和CTS(以下为转载内容)
RTS是模块的输入端,用于MCU通知模块,MCU是否准备好,模块是否可向MCU发送信息,RTS的有效电平为低,低电平表示本设备可以接受数据。
CTS是模块的输出端,用于模块通知MCU,模块是否准备好,MCU是否可向模块发送信息,CTS的有效电平为低,低电平表示本设备可以向对方发送数据。
1、流控,顾名思义就是流量控制的意思。目的是协调收发双方,使数据不会丢失。
2、很多人用了串口很久都不知道这回事,这是因为很多场合确实没有必要。收发双方波特率固定,并且接受数组足够大,这时不会出现接收方接受数组溢出导致数据丢失的情况,所以,以我的理解,使用流控的主要目的就是在数据量大,有可能出现接受数组溢出的时候,采取的一种协调收发双方的措施。可能还要其他原因,我没有理解到位。
3、假定A、B两设备通信,A设备的RTS 连接B设备的CTS ;A设备的CTS 连接B设备的RTS 。前一路信号控制B设备的发送,后一路信号控制A设备的发送。对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS 信号(RTS拉高,RTS无效,告知对方停止发送),通知B设备停止发送,B设备通过CTS 检测到该信号,停止发送;一段时间后A设备接收缓冲有了空余,发出RTS 信号(RTS拉低,RTS有效,请求发送),指示B设备开始发送数据。A设备发(B设备接收)类似。
二、通常情况下串口起始位和停止位电平。
起始位为低电平,用来同步,停止位为高电平用来表示帧结束。
USART相关问题的更多相关文章
- STM32串口usart发送数据
主函数请直接关注41行到47行代码!! #include "stm32f10x.h" // 相当于51单片机中的 #include <reg51.h> #include ...
- STM32串行通信USART解说笔记
STM32串行通信USART程序例举链接:http://blog.csdn.net/dragon12345666/article/details/24883111 1.STM32串行通信USART的相 ...
- 【STM32H7教程】第29章 STM32H7的USART串口基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第29章 STM32H7的USART串口基础知识和 ...
- STM32软件仿真的一个注意点
最近才做的板子由于自己的粗心把串口线搞反了,还好只有两条,飞线解决,而且现在还只是样板,但是还是应该引以为戒,以后做硬件一定要谨慎. 今天同事出差把CAN分析仪拿走了,本来在开发板上调试好的程序不知为 ...
- 嵌入式单片机STM32应用技术(课本)
目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...
- STM32F407 串口通信实验 第26节 个人笔记
前言 这篇笔记对应正点原子STM32F407探索者 ,教学视频第26节,网址如下: https://ke.qq.com/webcourse/index.html#cid=279403&term ...
- STM32学习笔记——printf
printf复习 当我们写printf("%d\n", 1);的时候,printf函数并不能通过C语言语法得知第二个参数是int类型.printf是一个变参函数(variadic ...
- zigbee学习之路(十三):基于协议栈的Usart 实验
一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家 ...
- [stm32] NRF24L01+USART搞定有线和无线通信
前言 一般进行远程监控时,2.4G无线通信是充当远程数据传输的一种方法.这时就需要在现场部分具备无线数据发送装置,而在上位机部分由于一般只有串口,所以将采集到的数据送到电脑里又要在上位机端设计一个数据 ...
随机推荐
- windows 上安装redis和windows上redis与php扩展
1.下载redis压缩包(自己选择想要的版本,1,2地址任意选一个) 下载window版本地址1:https://github.com/dmajkic/redis/downloads 下载window ...
- 实验二Java面向对象程序设计
一.单元测试 了解三种代码: 1.伪代码:类似于自然语言说明,描述实现逻辑思维 2.产品代码:程序员编辑的开发代码,要求可修改.可移植 3.测试代码:我理解是相当于开发软件在软件开放之前,程序员找到b ...
- USACO 1.3 Wormholes - 搜索
Wormholes Farmer John's hobby of conducting high-energy physics experiments on weekends has backfire ...
- tomcat部署项目如何去掉项目名称
去掉项目名和端口: 首先,进入tomcat的安装目录下的conf目录,我的目录是 /usr/local/apache-tomcat-6.0.20/conf,编辑文件server.xml. 1.去除端口 ...
- bzero, memset ,setmem 区别【转】
本文转载自:http://chang6520.blog.163.com/blog/static/112665875201302843359715/ bzero 原型: extern void bzer ...
- Linux进程间通信--使用信号量【转】
本文转载自:http://blog.csdn.net/ljianhui/article/details/10243617 这篇文章将讲述别一种进程间通信的机制——信号量.注意请不要把它与之前所说的信号 ...
- dubbo 实战总结
1,出现重复调用.因为有重试机制,可以改为异步调用或者幂等操作.
- 抽象类的继承,接口的实现,接口类型数组的使用,根据instanceof判断(返回)是否该是哪一个类型,类型的强转.
总觉得之前第2处有点问题,果然. 还需要instanceof判定一下,然后还需要把数组Animal[]转为Pet的才有方法play()~~~!
- HDU 6071 Lazy Running(很牛逼的最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=6071 题意: 1.2.3.4四个点依次形成一个环,现在有个人从2结点出发,每次可以往它相邻的两个结点跑,求最后回 ...
- HTTP协议中TCP的三次握手 and HTTPS
https://www.cnblogs.com/zxh930508/p/5432700.html https://www.cnblogs.com/digdeep/p/4832885.html