展开

关键词

C#中的串口通信

串行接口按电气标准及协议来分,包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。 RS-232-C :也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。 Parity 获取或设置奇偶校验检查协议    默认值None 在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。 这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收 串口(COM)读写操作的三种方式: 第1种方式是采用微软在.NET2.0推出了一个串口控件,SerialPort类 第2种方式是用API写串口通信,虽然难度高,但可以方便实现自己想要的各种功能。  第3种方式是通过采用Visual Studio 6.0中原来的MSComm控件这是最简单的,最方便的方法,但需要注册。

1.3K21

C#——串口通信自动连接

具体步骤是: 获取计算机所有串口。 尝试发送指定数据到每个可用串口。 尝试从串口接收数据并检查是否为约定数据,若是则绑定该端口,完成连接。不是则换到下一个。循环。 IsConnected)//未连接 { string[] strPorNnames = SerialPort.GetPortNames();//获取所有可用串口名 foreach (string portName in strPorNnames)//遍历串口 { try 而且拔掉之后(串口断开)软件并不会有任何的状态提示,之后你所有的数据都会往一个不知道的地方去了。所以,我们还要加一个检测断开的机制。

34641
  • 广告
    关闭

    即时通信 IM 首购89.9元/月起

    丰富 UI 组件助您极速集成聊天、会话、群组、直播弹幕等完备IM功能,全球接入,全平台跨终端互通,安全可靠,IM 首购0.9折起,复购7.5折起

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    串口通信系列(二)、I2C通信方式

    一、I2C简介 IIC全称为Inter Integrated Circuit:两根通信线:一根时钟线SCL一根数据线SDA,只有一根数据线,所以是半双工通信。 首先,CLK_FREQ是系统的输入时钟频率,I2C_FREQ是设定的IIC通信时钟频率。要生成IIC_SCL这样一个时钟的话肯定要分频,分多少? 分析系统的控制信号输入: (1)、IIC_EXEC:IIC通信执行的触发信号 (2)、bit_ctrl:地址控制信号,是8bit还是16bit的地址 (3)、i2c_rh_wl:读写类型控制信号输入 ( 4)、i2c_addr:I2C器件地址 (5)、i2c_data_w:IIC要写的数据 (6)、i2c_data_r:IIC读取的数据 (7)、i2c_done: IIC一次操作完成 (8)、i2c_ack : IIC的应答信号 0:应答 1:非应答 分析工作状态: 平时肯定是处于空闲状态——之后接收到IIC执行信号——要看是读取还是写入操作——与从机建立通信即发送从机地址——然后传输要读取或写入的地址

    1K10

    C#串口通信:2自动连接

    上次说到了协议的大致结构,这次我们来说说怎么去实现制动连接串口(当你把设备连上来之后,怎么去让软件自动去识别是否为目标设备,当然这需要上位机与下位机共同完成,这里我们只讨论上位机部分) 先上协议: 帧头 具体步骤是: 获取计算机所有串口。 尝试发送指定数据到每个可用串口。 尝试从串口接收数据并检查是否为约定数据,若是则绑定该端口,完成连接。不是则换到下一个。循环。 IsConnected)//未连接 { string[] strPorNnames = SerialPort.GetPortNames();//获取所有可用串口名 foreach (string portName in strPorNnames)//遍历串口 { try 而且拔掉之后(串口断开)软件并不会有任何的状态提示,之后你所有的数据都会往一个不知道的地方去了。所以,我们还要加一个检测断开的机制。

    19231

    C#开发: 通信篇-串口调试助手

    说明  这节教给用户使用C#做一个串口调试助手,  用户可在此基础上依据自己的需求做修改  本人的其它关于串口通信的上位机也会在此基础上做修改,  请用户认真学习本节. ? 新建工程 ? 检测串口热插拔 1.在串口模块拔插的时候,重新更新下串口comboBox的内容 然后: 如果热插拔的是用户刚打开的串口,则按钮显示 "打开串口",comboBox显示初始化的串口号 如果热插拔的不是用户刚打开的串口 ,则comboBox还是显示咱刚才的串口号 2.用一个变量记录用户打开的串口号 ? serialPort1.IsOpen){//用户打开的串口被关闭:说明热插拔是用户打开的串口 button1.Text = "打开串口"; C#的串口中断回调函数也是不定个数的进入 假设另一个串口发送的数据为 123456 int len = serialPort1.BytesToRead;//获取可以读取的字节数

    2.4K30

    串口通信Serial Port类C++实现

    本文转载自串口通信Serial Port类C++实现 串口介绍 串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。 RS-422:为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到 4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多 可以根据针脚的定义做成串口,多用于与串口服务器连接。 代码实现 CnComm串口通讯库v1.5 文档、范例的下载链接 . Serial Port to Network Interface http://www.codeproject.com/KB/IP/Serial_Port_Network_Acces.aspx 以上串口通信

    1.4K50

    C# 串口通信 stm32 电机

    前几天已经完成了stm32通过PWM对电机的控制,这几天趁上班之余,也完成了c#通过串口通信控制电机的运行。

    5510

    串口通信详解

    80C51的串行口 80C51串行口的结构 ? 有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。 80C51串行口的控制寄存器 SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志: ? 2. SM0和SM1为工作方式选择位,可选择四种工作方式: ? 3. 80C51串行口的工作方式 方式0 方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。 串口如何使用 串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。 dat=SBUF;//出去接收到的数据 if(dat=='0') LED =0; if(dat=='1') LED = 1; } 结尾 如果想良好的使用串口通信

    27520

    matlab串口通信

    虚拟串口:vspd安装:http://www.cr173.com/soft/21406.html ? ?

    39860

    LabVIEW串口通信

    目录 1、串口写入数据 2、串口读取数据 3、清除缓存区 4、设置缓存区 5、数据超时 6、数据终止符 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式 在LabVIEW中串口通信使用范围非常广泛,例如,通过串口使用ModBus协议驱动仪器、串口驱动PLC设备等。 代码下载:LabVIEW串口通信-嵌入式文档类资源-CSDN下载 1、串口写入数据 打开串口COM3,通信速率115200/bps,写入数据:A1$,示例代码如下所示: 2、串口读取数据 打开串口COM8 5、数据超时 在初始化VISA串口时,可以设置超时时间,当读、写数据超出时间,会提示错误信息。 以下示例定义串口通信超时时间是10秒。 代码下载:LabVIEW串口通信-嵌入式文档类资源-CSDN下载

    19340

    浅谈总线通信机制(通信基础+串口+I2C)

    (1)按系统总线传输信息的方式可以分为以下三种: 1、数据总线 2、地址总线 3、控制总线 (2)按照总线的使用范围又可以分为很多很多种: 比如串口通信,计算机外设通信,网络通信等等。 在嵌入式领域中,使用串行异步通信的协议还是挺多的。比如我们接下来要说到的串口串口协议就是异步通信的协议。 那么,什么又是协议? 当然,在计算机通信中,也不例外的。 那串口通信又是怎么约定的呢?首先肯定得有电路连接图对吧: MCU要和PC机相连,中间多了一个MAX232芯片,它是用来干嘛的呢? 通常,串口通信由一个起始位,多个数据位,一般是8位,或者8位以下,从一个字节的低位开始传输,传输完毕后传输停止位,这就是一个基本的串口协议,当然这个协议中也可以安插一些空闲位,还有奇偶校验位。 而串口协议又是什么东西呢?串口协议就是一种串行异步通信协议。有协议还不行,得有硬件接口嘛,具体是什么就不说了。

    77010

    串口通信大全

    尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。 什么是串口通讯 典型的串口通信使用3根线完成,分别是地线、发送、接收。 由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。 对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。 我们知道串口通信的数据传输都是0和1,在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱 因此单片机与PC机进行串口通信应该遵循:在单片机串口与上位机给出的RS232口之间,通过电平转换电路实现TTL电平与RS232电平间的转换.

    6320

    java串口通信

    java串口通信,由于没有相应的串口硬件,选了一款windows串口虚拟机机器 1. java.util.HashMap; import java.util.List; import java.util.Map; /** * @Classname ComTest * @Description com串口通信 Date 2021/9/4 10:44 * @Created by huangsm */ public class ComTest { /** * <com名称,SerialPort>串口通信 运行结果 你的可以通信串口列表 ========COM1======== ========COM2======== ========COM3======== ========COM4======== 请输入你的串口: COM3 输入你要发送的消息: 137912037 串口COM4接收到数据大小:9,串口数据内容:137912037 你的可以通信串口列表 ========COM1========

    6720

    AT80C51串口通信编程

    baudrate 9600 char UART_putchar(char ch); char UART_getkey(void); void InitCom(void); #endif uart8051.c: RI); c = SBUF; RI = 0; return(c); } void InitCom(void) { SCON=0X50; TMOD=0X20; PCON=0X80; TH1=0XF3; TL1=0XF3; ES=0; EA=1; TR1=1; } main.c: ? UART_putchar('A');UART_putchar(' '); UART_putchar('B');UART_putchar(' '); UART_putchar('C' ×¢Òâ¹Û²ìP2¿ÚµÄµÆ:\n"); scanf("%d",&tem); P2=tem; } } 编译之后,打开烧录软件烧录,然后打开串口通信助手进行调试

    37120

    串口通信协议

    0/5v 协议层 一个数据包的组成 起始位: 一个逻辑0 结束位:0.5个,1个,1.5个,2个逻辑1 有效数据:5~8位长度 校验位(可选):奇校验even,偶校验odd stm32上的串口 TX:发送 RX:接收 SCLK:时钟仅同步通信时使用 nRTS:请求发送(低电平有效) nCTS:允许发送(低电平有效) 引脚 USART1挂载在APB2上,其他挂载在APB1上 数据寄存器 控制寄存器 发送:UE=1 TE=1 将数据送到 TDR 波特率 USART_BRR波特率寄存器 $$ Tx/Rx Baudrate= \frac{f_}{(16*USARTDIV)} $$ $f_$串口时钟

    9810

    Ubuntu 模拟串口通信

    Ubuntu 串口通信 #1 环境 Ubuntu 16.04(Mac的虚拟机) Python 3.5 #1.1 安装插件 Ubuntu串口助手 sudo apt install cutecom ? Python第三方库 pip3 install pyserial #2 目的 在Ubuntu中虚拟出串口 使用虚拟串口通信(收/发) #3 开始 #3.1 虚拟串口 为什么要虚拟串口??? 因为我的电脑上并没有串口设备,所以需要虚拟出串口,才能进行串口通信,这一点非常非常重要!!!,如果电脑上没有接串口外设,又没有虚拟出可用的串口,是不能进行串口通信的! #! 虚拟出的串口可以正常使用 ! ) ser.name 串口名 ser.open() 打开串口(如果打开失败,在打开前先关闭) ser.close() 关闭串口 ser.read(x) 是读x个字符 ser.readline()

    98420

    串口通信DMA中断

    ENABLE); */ #include "usart1.h" uint8_t SendBuff[SENDBUFF_SIZE]; /* * 函数名:DMA_Config * 描述 :DMA 串口的初始化配置 RCC_AHBPeriph_DMA1, ENABLE); //开启DMA时钟 NVIC_Config(); //配置DMA中断 /*设置DMA源:内存地址&串口数据寄存器地址 one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* 配置P[A|B|C|

    54570

    RXTX for JAVA 串口通信

    /src/I2CImp.c:135: error: ‘UTS_RELEASE’ undeclared (first use in this function) 这是由于version.h中缺少’UTS_RELEASE /configure make make install 注意:可能会有权限不足的情况,需要chmod 777 test.c操作 至此使用RXTX框架的串口编程代码就可以在树莓派使用了。 即RXTX本身支持的Linux串口搜索只限制为/dev/ttyS*等,其他名称的并不能支持,而raspberrypi中的串口名称为/dev/ttyACM*,故无法找到系统串口。 ,添加所需串口名即可(如ttyACM)(此种方法需要重新编译安装) 2.将串口文件进行映射,即使用命令 ln -s /dev/ttyACM0 /dev/ttyS00,即可找到/dev/ttyS00映射串口 ,也就对应了/dev/ttyACM0实际串口

    1K30

    RXTX for JAVA 串口通信

    /src/I2CImp.c:135: error: ‘UTS_RELEASE’ undeclared (first use in this function) 这是由于version.h中缺少’UTS_RELEASE /configure make make install 注意:可能会有权限不足的情况,需要chmod 777 test.c操作 至此使用RXTX框架的串口编程代码就可以在树莓派使用了。 即RXTX本身支持的Linux串口搜索只限制为/dev/ttyS*等,其他名称的并不能支持,而raspberrypi中的串口名称为/dev/ttyACM*,故无法找到系统串口。 ,添加所需串口名即可(如ttyACM)(此种方法需要重新编译安装) 2.将串口文件进行映射,即使用命令 ln -s /dev/ttyACM0 /dev/ttyS00,即可找到/dev/ttyS00映射串口 ,也就对应了/dev/ttyACM0实际串口

    1.7K90

    RXTX for JAVA 串口通信

    /src/I2CImp.c:135: error: ‘UTS_RELEASE’ undeclared (first use in this function) 这是由于version.h中缺少’UTS_RELEASE /configure make make install 注意:可能会有权限不足的情况,需要chmod 777 test.c操作 至此使用RXTX框架的串口编程代码就可以在树莓派使用了。 即RXTX本身支持的Linux串口搜索只限制为/dev/ttyS*等,其他名称的并不能支持,而raspberrypi中的串口名称为/dev/ttyACM*,故无法找到系统串口。 ,添加所需串口名即可(如ttyACM)(此种方法需要重新编译安装) 2.将串口文件进行映射,即使用命令 ln -s /dev/ttyACM0 /dev/ttyS00,即可找到/dev/ttyS00映射串口 ,也就对应了/dev/ttyACM0实际串口

    96280

    扫码关注腾讯云开发者

    领取腾讯云代金券