uart

C# Serial Port reading HEX data

做~自己de王妃 提交于 2019-12-10 10:56:00
问题 I am writing a C# application to read from several serial COM ports at the same time to analyze the data communication of an IPOD. The data being sent needs to be interpreted as HEX bytes. For example, 0xFF 0x55 0x01 0x00 0x04 0xC3 0xFF 0x55 ... I want to be able to read this and display it in a rich textbox, for example 0xFF 0x55 0x01 0x00 0x04 0xC3 0xFF 0x55 ... The start of a command includes a header (0xFF 0x55) and the rest is is the command + parameters + checksum. What is the best way

9 bit protocol on UART in embedded Linux

北战南征 提交于 2019-12-10 10:31:58
问题 I am trying to force a 9-bit protocol on a UART in embedded Linux. Currently I am testing this out on the am335x_evm board. I am planning on doing this using stick parity. Ideally I was hoping I would not need to actually modify any of the code for the omap-serial.c driver. The reason for the 9-bit protocol is to support some legacy hardware that uses it. The parity bit needs to be 1 for the address portion of the message, 0 for the data portion, then 1 again for the termination byte. I was

UART通信中流控RTS和CTS的理解

纵饮孤独 提交于 2019-12-10 06:54:50
一、流控,顾名思义就是流量控制的意思。目的是协调收发双方,使数据不会丢失。 如果UART只有RX、TX两个信号,要流控的话只能是软流控; 如果有RX,TX,CTS,RTS 四个信号,则多半是支持硬流控的UART; RTS (Require ToSend,发送请求) 为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。 CTS (Clear ToSend,发送允许) 为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。 二、很多人用了串口很久都不知道这回事,这是因为很多场合确实没有必要。 收发双方波特率固定,并且接受数组足够大,这时不会出现接收方接受数组溢出导致数据丢失的情况,所以,以我的理解,使用流控的主要目的就是在数据量大,有可能出现接受数组溢出的时候,采取的一种协调收发双方的措施。 三、流控设计到RTS和CTS两个口,收发双方都有各自的RTS和CTS,如通信双方A,B。那么A的RTS就与B的CTS相连,A的CTS就与B的RTS相连。 RTS的作用是告诉对方我可以接受数据,是输出口;CTS的作用是根据电平高低控制发送或不发生数据。 如:A与B通信,现在A给B发送数据,当B出现某种情况(可能是接受缓存快要满了)的时候,B的RTS拉低(一般拉低表示有效,但也不一定),A的CTS是与B的RTS相连的

第十六章 唯我独尊——基于FPGA的UART、USB接口协议设计

假装没事ソ 提交于 2019-12-10 04:28:16
一、PC 终端概述 PC终端,Personal Computer 智能终端,通俗的讲,就是利用电脑GUI界面控制我们的外部硬件电路。 因此设计到了PC与外部硬件电路的通信接口。对于台式电脑、个人笔记本,最常用的接口就是USB接口、串口、并口、PS2接口、网口。在我们电子设计中的PC终端软件的通信,应用最多的就是串口、其次是USB接口、再就是网口。(对于现在大部分笔记本没有了串口,我们可以用USB专串口线来代替。)这三种接口速度和性质不同,各有千秋: (1)电子产品中,很多低速的数据采集,一些点阵系统的配置,GPRS模块的调试等,都用串口来实现跟PC的通信。甚至一些单片机(宏晶STC)的配置都用串口实现通信。串口最高可以达到128000bps的速率,在低速场合下,完全能够实现与PC的通信,来满足我们各种要求,来实现对数据的实时处理。 (2)设计到高速的数据传输、视频图像传输等的,一般用USB接口来交换数据。比方说我们的硬盘、U盘、各种硬件下载器(USB BLUSTERO(∩_∩)O哈哈~)、以及实时图像采集、视频采集等,都是用USB接口来实现的。目前USB已经发展到了USB 3.0,但还是以USB 2.0为主,最高能够达到480Mbps(60MB/s)高速,足够的带宽满足我们对高速、海量数据的采集处理。 (3)最后就是网口的通信,一般网口用来上网传输数据

stm32 hal库串口通信资料汇集

感情迁移 提交于 2019-12-09 23:49:28
串口的发送接收函数: HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制。 HAL_UART_Receive();串口轮询模式发送,使用超时管理机制。 HAL_UART_Transmit_IT();串口中断模式发送, HAL_UART_Receive_IT();串口中断模式发送 HAL_UART_Transmit_DMA();串口DMA模式发送 HAL_UART_Receive_DMA();串口DMA模式发送 串口相关的中断函数: HAL_UART_TxHalfCpltCallback():一半数据(half transfer)发送完成后,通过中断处理函数调用。 HAL_UART_TxCpltCallback():发送完成后,通过中断处理函数调用。 HAL_UART_RxHalfCpltCallback():一半数据(half transfer)接收完成后,通过中断处理函数调用。 HAL_UART_RxCpltCallback():接收完成后,通过中断处理函数调用。 HAL_UART_ErrorCallback():传输过程中出现错误时,通过中断处理函数调用。 可看到串口发送和就是有三种通信模式: 第一种是上面用到的轮询的模式。CPU不断查询IO设备,如设备有请求则加以处理。例如CPU不断查询串口是否传输完成,如传输超过则返回超时错误

UART在4412上的裸机开发

百般思念 提交于 2019-12-09 12:46:32
UART(通用异步传输收发器)简介 串行通信简介 我们的实际生活中,常见的通信方式有很多,例如:蓝牙,WIFI,网线,红外,HDMI VGA,USB,I2C,SP1,UART等,每种都有自己的特点以及常用的场合。今天,我们就来看看我们的串行通信。通用异步收发器简称UART,即“Universal Asynchronous Receiver Transmitter”, 它 串行通信是指计算机与I/O 设备之间数据传输的各位是按顺序依次一位接一位进行传送。通常数据在一根数据线上传输。具体情况如下:用来传输串行数据:发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,将串行收集放在缓冲区中,CPU即可读取UART获得这些数据。UART之间以全双工方式传输数据,最精简的连线方法只有三根电线:TxD用于发送数据,RxD用于接收数据,Gnd用于给双方提供参考电平,连线如图7.1所示:transmission recvfrom 我们通俗所使用的串口硬件格式为: 实质上,大部分我们只是使用了里面的3根线。 UART使用标准的TTL/CMOS逻辑电平(0~5V、0~3.3V、0~2.5V或0~1.8V四种)来表示数据,高电平表示1,低电平表示0。为了增强数据的抗干扰能力、提高传输长度,通常将TTL

STM8--UART2

那年仲夏 提交于 2019-12-09 12:32:53
UART以一个起始位开始通信,起始方法是由TX引脚输出低电平。跟着起始位之后是要发送的8位或者9位数据,如果有奇偶校验则数据后面是奇偶校验的数据信息,最后是停止位,停止位可以设置为1,2,1.5个。 发送配置及单字节通信过程: 1, 控制寄存器 1(UART_CR1) 来源: https://www.cnblogs.com/caiya/p/12010310.html

Bug related to UART FIFO under multi-tasks

拥有回忆 提交于 2019-12-08 14:10:38
问题 Program attached: Those codes are written by me based on the TI uart.c driver library. while(1){ //check if message on Queue -> read or check UART input if(uxQueueMessagesWaiting( UART_TASKQ ) != 0){ //may have bugs // deQueue xQueueReceive( UART_TASKQ, &UARTTaskHandle, 0x0A ); //do the task's mission using the data in the stucture(put by control task) //Print out the input data. //**********debugging data /* testPointer = UARTTaskHandle->dataBuffer; testAmount = UARTTaskHandle->dataSize;

UART to Qt software error - why data always split?

戏子无情 提交于 2019-12-08 07:53:11
问题 I am tryig to display data I receive via UART on my Qt application. I send all my data from my microcontroller at once, but my qt application receives it in multiple parts why? this is what I get: http://imgur.com/kLXRvU5 in stead of: http://imgur.com/h2yNZjl So every time I receive data my slot function gets called, hence the "data received". But my data is split in two parts. Why please? my code: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)//,

Virtual ESC POS printer

▼魔方 西西 提交于 2019-12-08 03:30:46
问题 I searched little bit for emulation of ESC/POS printer, but didn't found any thing more, then data parsers like this. In few words, I have Linux, I have device connected to my PC via UART/RS-232 port. I need some soft, that will listen to specific COM port, and visualize data sent to be printed to this port (in example saves it as PDF). 回答1: I don't think there is an out of box solution, but if you can capture the data (and it is a simple enough subset of esc/pos) you could then feed it to a