一、谈谈对串口UART的理解
1.交代计算机中常见的几种硬件(CPU和外设)通信方式:GPIO/UART/IIC/SPI/1-WIRE。
2.UART的定义:通用串行异步收发器。
串行和并行的对比:距离 速度 抗干扰性
2.1 异步:CPU的速度要远远快于外设,势必要考虑数据同步(发玩还要确保接收正确)
数据同步方法:异步和同步
同步:“低放高取”。不仅仅需要数据线,还需要一根时钟控制信号线。利用时钟控制信号线来实现双方的数据同步。
IIC总线和SPI总线就是采用同步方式。
3.UART串口的三种工作方式:单工、半双工、全双工。
二、如何利用异步实现UART的数据同步
答案在UART的数据传输协议中。
UART数据传输协议:空闲位、起始位、数据位、奇偶校验位、停止位。
空闲位:CPU和外设不再进行数据传输时,数据线上一直发送空闲位,“1” 有效。
起始位:CPU和外设进行数据传输时,首先在数据线上要发送一个起始位信号,有效位数:1bit。
数据位:指定有效的数据位数,5/6/7/8,一般为8。
关键字:串口 UART学习
引用地址:
串口UART学习笔记
推荐阅读最新更新时间:2024-03-16 16:17
STM32F103 5个串口同时使用
硬件平台:STM32F103(自带5串口) 5个串口同时工作不丢包-_- 相关宏定义 typedef enum { UartPort1, UartPort2, UartPort3, UartPort4, UartPort5, UartPort_USB, }UARTPORT; #define RXTIMEOUT 10 // 接收超时时间,如10mSec内未接收任何数据,当作一个接收包 #define UART_TXBUFFERLEN 0x100 //发送缓冲区大小 #define UART_RXBUFFERLEN 0x400 //接接缓冲区大小 typede
[单片机]
提升PIC单片机AD转换数据存储及串口效率的设计
0 引言 在由单片机和PC 机构成的检测系统中,通常会由多个单片机采集数据并将经过A/D 转换的数据通过串口送往上位PC 机进行数据处理。PIC 单片机A/D 转换后的结果大多是8 位或10位的,8 位的A/D转换不涉及该问题。以10 位的数据为例,在单片机内进行存储时需要占用2 个8 位的字节,低8 位和高2位分别存储在2 个字节中,但是用于存储高位数据的8 位宽的RAM 单元中仅有2 位是有效数据。 单片机的存储空间有限,以单片机为例,RAM 数据存储器按功能分为通用寄存器和特殊功能寄存器两个部分,除去特殊功能寄存器外,仅有368个8 位宽的RAM 单元,单片机能够存储的数据量很有限。假设将每次A/D 转换的
[单片机]
基于RTL8019AS的串口与以太网接口转换器
引言
随着互联网应用的日益普及,信息共享程度的不断提高,以单片机为中心的数据采集、检测控制等系统接入网络共享信息已成为一种趋势,传统的互联网的应用正从以PC机为中心的时代逐渐转到以单片机系统为中心的时代。
但是,目前在工业控制领域,单片机系统主要通过RS-232、RS-485和CAN总线协议通信,它们无法直接于互联网连接,因此,系统处于与互联网隔绝的状态。这些系统广泛采用低成本的8位单片机,而这种单片机一般只具有RS-232异步串行通信接口,要想接入互联网必须进行通信接口改造,这种改造不仅是接口的物理改造,关键是数据格式的改造和通信协议的转换。因此,本文提出一种RS-232串行通信接口与RJ45以太网接口转换
[嵌入式]
ARM 开发板嵌入式linux系统与主机PC通过串口传输文件
嵌入式linux系统与主机通过串口传输文件 我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载。但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx、zmtx,另外一个是lsz、lrz。个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者。下面介绍一下lsz/lrz的使用方法。 一、编译lrzsz并下载到开发板上 从http://download.chinaunix.net/download/0007000/6293.shtml下一个lrzsz的tar包,解压缩后输入./configure,然后进入了sr
[单片机]
怎样用万用表检测串口
维修工作中,遇到需要测试串口有无问题,我们一般的测量方法是: 1.连接串口设备如鼠标或串口通讯设备后,看检测设备是否可正常使用,从而判断串并口的好坏。 2.用短路测试环接在串并口上,用操作系统自带的超级终端程序或其他的串口测试程序来测试串口的好坏。 这两种方法的缺点是需要特定的设备或程序,并且要进入系统后才可进行,我们经常遇到再用户现场没有这些测试条件时,就可以借助于 万用表 检测串口是否正常,可以减少测量时间、提高工作效率和判断故障的准确性。 以下是 万用表 检测主板串口的方法,在实际维修中经长时间的实践验证,判断方法是准确可靠的。再这里作为个人的维修经验与大家交流,对准确性不作绝对保证,大家可在实际工作中加以验证。 串口
[测试测量]
STM32的串口空闲中断及接受数据
STM32的串口空闲中断及接受数据——STM32简介 STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核 STM32的串口空闲中断及接受数据——关于什么是空闲中断: 检测到接收数据后,在数据总线上的一个字节时间内,没有接收到数据触发空闲中断。RXNE置位一次,空闲总线就检测一次。 关于STM32串口空闲中断的问题 1.空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断。并不是空闲就会一直中断,准确的说应该是上升沿(停止位)后一个byte,如果一直是低电平是不会触发空闲中断的(会触发break中断)。 2.关于第二点有要铺垫的三个情况,datash
[单片机]
stm32之iap实现应用(基于串口,上位机,详细源码)
开发环境:Window 7 开发工具:Keil uVision4 硬件:stc32f103c8t6 篇幅略长,前面文字很多,主要是希望能让小白们理解,后面就是实现步骤,包括实现的代码。 在研发调试的时候我们一般用烧录器下载代码,对于stc32f103c8t6来说,还可以用串口下载,步骤如下: 1.PC端下载一个上位机Flash Loader Demo 2.芯片的串口引脚Tx、Rx(PA.9、PA.10)通过USB TTL连接到电脑上 3.将芯片的boot0引脚接高电平、boot1引脚接低电平。这是为了让芯片上电的时候从系统存储区启动,原厂的isp程序保存在那里,地址是0x1FFF 000 ~ 0x1FFF 77FF。系统存
[单片机]
STM32F207调试记录之串口配置
这几天在配置串口时出现了一些令人不解的问题,鬼魅般的不行啊!真是令人头疼!因为再一次遇到了这个问题,故想有必要做一个记录。 先说一下配置USART1的过程吧。 ①配置串口1时钟,在APB2上 ②复用功能连上IO引脚 ③ 配置GPIO为复用模式、推挽、50MHz、上拉 ④配置串口波特率为指定波特率、 8位数据长度、1位停止位、无校验、无流控制、串口模式为接收和发送 ⑤使能串口 ⑥配置串口中断包括 中断通道、抢占优先级、响应优先级、通道使能 ⑦配置串口接收中断使能、发送中断使能 至此串口配置完毕。 在主函数中放上串口发送函数(一秒发一次),开始调试,现象如下: 首先将断点放在发送中断和接收中断处理的地方,每隔一秒会进入发送中断
[单片机]