首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韦东山嵌入式

    8_UART串口编程

    确定好传输速率后,我们还需要确定传输数据的格式,UART串口通信的数据包以帧为单位,常用的帧结构为:1位起始位+8位数据位+1位奇偶校验位(可选)+1位停止位。 ​ 8.2.1 IMX6ULL UART模块简介 ​ IMX6ULL共8个独立的UART通道,即8个UART,主要特性如下: ​ a.兼容高速串口标准TIA/EIA-232-F,高达5Mbit/s; ​ b **注明:**整个完整工程代码目录在裸机Git仓库 NoosProgramProject/(8_UART串口编程/002_uart_txd_char)文件夹下。 \n\r"); /*发送字符串*/ ​ **注明:**整个完整工程代码目录在裸机Git仓库 NoosProgramProject/(8_UART串口编程/004_uart_str)文件夹下。 **注意:**整个完整工程代码目录在裸机Git仓库 NoosProgramProject/(8_UART串口编程/005_printf_test文件夹下,可用于其它程序使用串口来打印或接收字符串。

    2K10编辑于 2022-05-05
  • 来自专栏Gnep's_Technology_Blog

    Labview串口通信VISA实现串口收发

    前言 前面使用过调用 MSComm 控件的方式(Labview串口通信MSComm实现串口收发),即利用 Windows 提供的控件对象,在 LabVIEW 中对该控件的属性和方法进行操作,来实现串口通信 之所以使用 MSComm 控件,是因为比使用 VISA 来实现串口通信要灵活一些,比如可以通过回调的方式,在 PC 的串口 buffer 中数据字节数到达某一设定值时,可以触发注册好的 LabVIEW 本文实现通过 LabVIEW 的 VISA 模块实现串口收发通信。 三、VISA 实现串口收发 官方给我们提供了很多范例方便我们进行开发,我这里要用到的是串行写入和读取两个端口例程,相关范例路径在:帮助 -> 查找范例 -> 硬件输入与输出 -> 串口-> 串行写入和读取两个端口 spm=1001.2014.3001.5501 我这里虚拟出 COM8 和 COM9 两个端口 2、前面板运行效果 COM8(发)–> COM9(收),在写入字符串输入 “hello world!

    3.4K20编辑于 2023-08-10
  • 来自专栏Gnep's_Technology_Blog

    Labview串口通信MSComm实现串口收发

    前言 本文介绍使用 ActiveX 控件 MSComm 实现高性能的串口收发。 一、什么是 MSComm MSComm 作为一个串行通讯控件,每个 MSComm 控件,都对应一个串口,若需访问多个串口时必须使用多个 MSComm 控件。 中断方式:当串口有数据到达或有数据写入到串口缓冲中时,就会触发中断,可以使用 OnComm 捕获事件并进行处理。这种方式响应及时,比轮询方式效率要高。 spm=1001.2014.3001.5501 2、发送测试 程序中使用的是 COM8 口,因此开一个虚拟串口 COM9,COM9(发) --> COM8(收) 3、接收测试 程序中使用的是 COM8 口,因此开一个虚拟串口 COM9,COM8(发) --> COM9(收) 4、后面板核心程序框图 六、程序自取 链接:https://download.csdn.net/download/qq_41839588

    2.5K30编辑于 2023-08-10
  • 来自专栏趣Python

    M-Arch(8)第七个示例:串口和DMA

    由于之前我们已经使用了串口1(STM中是USART1,GD中是USART0),本文中以串口2作为示例(STM中是USART2,GD中是USART1)。 GPIO_PIN_3); usart_baudrate_set(com, baudrate); usart_word_length_set(com, USART_WL_8BIT dma_channel_subperipheral_select(DMA0, DMA_CH6, DMA_SUBPERI4); } void uart2_dma_send_ascii(uint8_ )); } 串口DMA接收代码 uart2_dma_rx_init:串口接收DMA初始化 uart2_dma_rx_get_count:获取DMA接收数据长度,并置位DMA,在串口空闲中断中调用 【注 \r\n 串口DMA接收例行结果展示 COM9接串口1,COM3接串口2 COM3循环发数据给MCU,MCU通过串口1打印给电脑 【注:STM32的串口DMA没找到串口头子,没测试】 --EOF--

    86230编辑于 2022-03-22
  • USB转多串口设备固定串口

    1、概述使用USB转串口设备或多个USB转串口设备级联扩展多串口时,会经常遇到USB设备插拔顺序或插入的USB主机口位置不固定,系统重新开机等操作导致设备对应串口号无法固定,影响产品使用。 针对如上应用问题我司提供内置USB Serial Number(USB串行序列号)的USB转串口芯片,可固定设备对应串口号,配合沁恒提供的专用串口号批量管理工具“ComPortManager”可轻松实现多设备的串口管理 ,支持USB转串口、PCI(e)转串口、BLE/以太网转串口等设备类型,支持主动扫描设备与沁恒串口设备的热插拔检测。 串口更改支持2种方式:串口号依次递增或根据设备在系统下的物理位置进行分配。串口号依次递增方式下对于每个多串口设备,更改成功后其第一个物理串口对应“起始串口号”,然后依次增加。 串口设备类型选择:USB转串口/PCI(e)转串口/BLE与以太网转串口/所有类型枚举串口:主动搜索当前系统所有串口设备串口卡排列顺序:按位置排列/按串口数量排列串口设备信息栏串口设备对应的COM口详细信息栏需要更改的目标设备指定串口号更改方式

    1.3K10编辑于 2025-06-12
  • 来自专栏嵌入式单片机

    串口通信—串口发送和接收代码讲解

    USART_WordLength:数据帧字长,可选8 位或9 位。它设定USART_CR1 寄存器的M 位的值。 如果没有使能奇偶校验控制,一般使用8 数据位;如果使能了奇偶校验则一般设置为9 数据位。    接下来,我们配置USART1 通信参数为:波特率115200,字长为8,1 个停止位,没有校验位,不使用硬件流控制,收发一体工作模式,然后调用USART 初始化函数完成配置。    下载验证   保证开发板相关硬件连接正确,用USB 线连接开发板的USB 转串口跟电脑,在电脑端打开串口调试助手并配置好相关参数:115200 8-N-1,把编译好的程序下载到开发板,此时串口调试助手即可收到开发板发过来的数据 我们在串口调试助手发送区域输入任意字符,点击发送按钮,马上在串口调试助手接收区即可看到相同的字符。

    6.4K30发布于 2019-12-30
  • 来自专栏知识分享

    8-Air202串口学习(Air202串口1接收到什么内容就回复什么内容)

    有人会想,不就是个串口接收到什么就会什么的程序嘛!!!!!!!!!!!!!!有什么好说的!! = uartReadData..data; uartReadDataCnt = uartReadDataCnt +1 end end pm.wake("wake") --注册串口的数据接收函数 ,串口收到数据后,会以中断方式,调用read接口读取数据 sys.reguart(UART_ID,read) --配置并且打开串口 uart.setup(UART_ID,115200,8,uart.PAR_NONE 凡是串口接收的程序,无论单片机还是上位机这个接收 程序的模式是通吃的...... 所以下各个部分的功能 ? 算啦说一下整体的思路 串口中断里面有一个负责接收数据的字符串变量,还有一个数据个数累加的变量 假设串口一次发100个数据,,然后间隔1S发一次 定时器是每间隔10Ms检测一次 如果数据没有接收完 uartReadDataCnt

    50840发布于 2018-08-01
  • 来自专栏ccf19881030的博客

    C#串口操作类,包括串口读写操作

    C#串口操作类,包括串口读写操作 本文转载自博客园:C#串口操作类,包括串口读写操作 串口进行操作的类,其中包括写和读操作,类可设置串口参数、设置接收函数、打开串口资源、关闭串口资源,操作完成后,一定要关闭串口 、接收串口数据事件、接收数据出错事件、获取当前全部串口、把字节型转换成十六进制字符串等功能。 #endregion #region 默认构造函数 ///

    /// 默认构造函数,操作COM1,速度为9600,没有奇偶校验,8位字节 ,停止位为1 "COM1", 9600, Parity.None, 8, StopBits.One /// public SerialClass serialPort.BaudRate = 9600; _serialPort.Parity = Parity.Even; _serialPort.DataBits = 8;

    5.2K20发布于 2020-09-17
  • 来自专栏Android菜鸟成长记录

    串口通信(三)

    前言 初识Android串口通信(一) - 掘金 串口通信(二) 数据校验 - 掘金 前面讲了一些Android串口通信的一些数据校验和基本使用,下面说说串口通信中与硬件之接的协议ModBus ModBus 我们在看Modbus的时候,经常会看到485串口,232串口,详细请看拓展。 协议格式 MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。 基于串口的Modbus-RTU 数据按照标准串口协议进行编码,是使用最广泛的一种Modbus协议,采用CRC-16_Modbus校验算法。 基于串口的Modbus-ASCII 所有数据都是ASCII格式,一个字节的原始数据需要两个字符来表示,效率低,采用LRC校验算法。 全双工 逻辑1:-15V–5V 逻辑0:+3V–+15V RS485:RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。

    1.4K10编辑于 2023-12-14
  • 来自专栏python3

    Python操作串口

    一个Python实现的串口Echo import serial import sys try: ser = serial.Serial('/dev/ttyUSB0', 9600) except Exception

    2.7K10发布于 2020-01-06
  • 来自专栏AIoT技术交流、分享

    LabVIEW串口示波器

    目录 1、项目代码  2、项目效果 ---- 之前的博文分享过LabVIEW虚拟数字示波器,虚拟示波器的数据来自于软件模拟,本篇博文将分享一款串口示波器,LabVIEW设计上位机,数据来自于节点上传(STM32

    2.5K40编辑于 2023-04-08
  • 来自专栏Hyperledger实践

    Android串口入门

    如何确定串口文件和波特率? case 6: cfg.c_cflag |= CS6; break; case 7: cfg.c_cflag |= CS7; break; case 8: cfg.c_cflag |= CS8; break; } switch (stopBit) { case 1: cfg.c_cflag &= ~ 串口重连 串口被拔插时应用需要支持重连,在遇到InputStream,OutputStream读取返回-1或不可能恢复的问题时, 处理串口的线程应当捕获错误, 优雅关闭当前串口资源,尝试重连,保证串口应用的健壮性 8. Android串口消息的通知 串口通常是独占, 不能被多个android app打开, 所以很多时候android需要开一个服务, 负责监听串口消息,之后做广播到监听的app处理。

    3.4K10发布于 2020-11-10
  • 来自专栏Android菜鸟成长记录

    串口通信(三)

    前言 初识Android串口通信(一) - 掘金 串口通信(二) 数据校验 - 掘金 前面讲了一些Android串口通信的一些数据校验和基本使用,下面说说串口通信中与硬件之接的协议ModBus ModBus 我们在看Modbus的时候,经常会看到485串口,232串口,详细请看拓展。 协议格式 MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。 基于串口的Modbus-RTU 数据按照标准串口协议进行编码,是使用最广泛的一种Modbus协议,采用CRC-16_Modbus校验算法。 基于串口的Modbus-ASCII 所有数据都是ASCII格式,一个字节的原始数据需要两个字符来表示,效率低,采用LRC校验算法。 全双工 逻辑1:-15V–5V 逻辑0:+3V–+15V RS485:RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。

    1.2K10编辑于 2023-12-14
  • 来自专栏javascript趣味编程

    8.3 串口读写

    何谓串口串口就是一个计算机接口,用于数据通信,例如计算机。老一点的PC和笔记本都有串口,工控机一般配置有串口,如果没有可以到淘宝上买USB-串口转换器。 ? 串口能做什么? 串口用于数据通信,例如可以通过计算机读取与计算机通过串口连接的温度传感器值。 为什么讲串口读写?有时候购置设备只提供了串口和通信协议,如果为了省钱就可以自行编程实现串口数据读取。 那如何向串口发送命令呢? 那是不是我电脑没有串口硬件,就不能做串口编程了呢? 非也,Eltima Virtual Serial Port Driver虚拟串口(提供45天免费试用)了解下,创建虚拟串口,就可以愉快的编程操作串口了。 虚拟串口解决了,那没有下位机怎么办?

    3.2K20发布于 2019-04-26
  • 来自专栏AIoT技术交流、分享

    LabVIEW串口通信

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

    4.3K40编辑于 2022-05-07
  • 来自专栏TopSemic嵌入式

    GPIO模拟串口

    你是否遇到过某个MCU串口不够的情况? 这时我们可以考虑用GPIO去模拟,如何具体实现呢? 首选我们需要了解串口的传输协议, UART使用异步模式工作,不需要时钟信号,其一般格式为:起始位+数据位+校验位+停止位。其中起始位1位,数据位5~8位,校验位0或1位,停止位1、1.5或2位。 不过最常用的格式是1位起始位、8位数据位、没有奇偶校验、1位停止位,简记为8/N/1。 8/N/1格式的时序图如下: 空闲时数据线上规定为逻辑1。 以下是对程序的简单说明: 1)gpio_uart_demo_init() 里可以配置UART的相关参数,如波特率,奇偶校验,数据位长度 2)void gpio_uart_read(uint8_t *bufptr 3)void gpio_uart_write(uint8_t *databuf, uint32_t num,void (*tx_callback)(void))这个函数为uart发送函数,第一个参数为发送数据

    3.4K20发布于 2021-08-27
  • 来自专栏全栈程序员必看

    串口转tcp软件_tcp转虚拟串口软件

    图3 本地计算机的串口 图4 本地计算机串口映射到远程服务器后的串口 现在差最后一步,将远程服务器的串口共享给虚拟机就可以了,用的是VMWare虚拟机,通过给虚拟机添加串口就可以实现,设置如图5所示。 图6 有人的虚拟串口软件 用有人的这个虚拟串口软件,我在虚拟机上就可以很方面的搭建一个虚拟串口,只要在远程服务器上搭建一个物理串口到虚拟机TCP8222端口的透明TCP连接就可以了,但有人的不支持物理串口转发 图7 共享过来的串口无法打开使用 正常的是能直接打开的,如图8所示。 图8 其他串口是可以打开使用的 而且Serial to Ethernet Connector不是免费的哦。 为了更好地满足调试应用,自己就动手写了一个串口转TCP的小程序,基本特征如下: 1、支持打开物理串口和虚拟串口(不创建虚拟串口,但能打开其他工具创建的虚拟串口)。 8、支持通信计数功能。 9、支持通信计数手动清零功能。 10、支持配置自动保存功能,软件下次启动自动加载上次配置。

    6.8K51编辑于 2022-10-04
  • 来自专栏独行猫a的沉淀积累总结

    windows下的串口编程,串口操作类封装

    基本步骤 使用Win32文件方式操作:打开串口(创建文件)->配置参数->发送(写文件)-->接收(读文件) 打开串口 打开串口的第一步是初始化或设置串口配置,目的是创建串口代理,整篇文章我们都将用文件句柄作为串口代理 m_port = INVALID_HANDLE_VALUE; return open; } dcb.BaudRate = m_baud; dcb.ByteSize = 8; char* pSendDataArray = sendDataArray; memcpy((pSendDataArray + 3), sd.c_str(), sd.size()); uint8_ t* pnt, uint8_t len, uint8_t* CrcHi, uint8_t* CrcLo) { uint8_t i; uint16_t crc = 0; while (len = 0) crc ^= 0x1021U; } pnt++; } *CrcHi = crc >> 8U; *CrcLo = crc & 0xFFU; } 关闭串口

    3.2K10编辑于 2022-06-09
  • 来自专栏全栈程序员必看

    Android 串口调试_串口转usb需要驱动吗

    本文背景: 是真的不喜欢脑子记这些引脚,串口节点,动不动忘记了。 1.首先记录一下硬件引脚----tty节点对应关系 2.找一组/dev/ttyHSL1,先测试一下自环,然后写个app,从app里面读写这个节点 3.通过串口和单片机通信 硬件平台配置: 平台:msm8909 默认log串口:Board_KERNEL_CMDLINE := console=ttyHSL0, 115200, n8 对应文件节点:/dev/ttyHSL1 — (fd, &options); if (-1 == ret) return -1; options.c_cflag &= ~CSIZE; //屏蔽其他标志 options.c_cflag |= CS8; //数据8bit options.c_cflag &= ~PARENB; //无校验 options.c_cflag &= ~CSTOPB; //设置1位停止位 options.c_lflag

    8.9K21编辑于 2022-11-07
  • 来自专栏嵌入式与Linux那些事

    【驱动】串口驱动分析(四)-串口编程和调试方法

    串口调试 串口调试主要有 根据/proc系统信息确认串口状态,stty命令,编程调试 三种调试方法,下面我们分别具体介绍下。 串口配置 stty -F /dev/ttyS0 speed 115200 cs8 -parenb -cstopb 设置串口ttyS0波特率为115200,8位数据位,1位停止位,无校验位。 [-]parity 等于[-]evenp pass8 等于-parenb -istrip cs8 -pass8 等于parenb istrip cs7 示例: read(fd,buff,8); write(fd,buff,8); 串口属性设置 很多系统都支持POSIX终端(串口)接口.程序可以利用这个接口来改变终端的参数,比如,波特率,字符大小等等. \n"); } printf("fd-open=%d\n", fdSerial); // 设置串口参数 if (setOpt(fdSerial, 115200, 8,

    2.3K10编辑于 2024-05-20
领券