0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ESM335x WEC7串口硬件流控使用说明

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-04 11:22 次阅读

ESM335x系列工控主板支持5路高速串口,其中COM2口支持硬件RTS/CTS流控功能,其RTS/CTS分别与ESM335x的GPIO1/GPIO0复用,应用程序可以独立设置是否使能RTS/CTS功能。

RTS(Request-To-Send)流量控制功能由串口参数结构体DCB的fRtsControl成员设置,该成员的可用值如下(针对ESM335x):

说明
RTS_CONTROL_DISABLE 禁止RTS功能,对应管脚可作为GPIO使用
RTS_CONTROL_HANDSHAKE 启用RTS握手功能。当串口硬件输入缓冲区字符数大于40时,RTS输出高,小于24个字符时,RTS输出低
RTS_CONTROL_TOGGLE 当发送数据时,RTS信号线被驱动为低,缓冲区数据发送完后,RTS信号为被驱动高

串口参数结构体DCB的fOutxCtsFlow成员用于指定CTS(Clear-To-Send)信号是否被监视并作为输出流量控制信号。如果此成员设置为TRUE且CTS管脚为高,则串口输出被挂起,直到CTS被拉低后重新输出。如果此成员设置为FALSE,对应管脚可作为GPIO使用。

RTS Handshake与OutxCtsFlow通常是同时使能或同时禁止的,下面是设置RTS/CTS的示例代码:

BOOL CCESerial::SetHandshake( BOOL bSet )

{

DCB dcb;

GetCommState( m_hSer, &dcb );

// Purge any pending characters in the serial port.

PurgeComm(m_hSer, (PURGE_TXABORT|PURGE_RXABORT |PURGE_TXCLEAR | PURGE_RXCLEAR));

if( bSet )

{

dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;

dcb.fOutxCtsFlow = TRUE;

}

else

{

dcb.fRtsControl = RTS_CONTROL_DISABLE;

dcb.fOutxCtsFlow = FALSE;

}

returnSetCommState(m_hSer, &dcb);

}

除COM2口支持硬件流控外,ESM335x的所有串口(包括COM2)还支持 RTS Toggle功能,RTS Toggle主要用于RS485电路的数据收发方向控制,应用程序可以选择ESM335x 32位GPIO中的任意一位做为RTS信号线来实现RTS Toggle功能,下面是选择GPIO作为串口RTS信号并使能RTS_CONTROL_TOGGLE的示例代码:

BOOL CCESerial::SetRTSToggle( DWORD dwRTSPin )

{

DCB dcb;

BOOL bRet;

bRet = DeviceIoControl(m_hSer, // file handle to the driver

IOCTL_SET_UART_RTS_PIN, // I/O control code

&dwRTSPin, // in buffer

sizeof(DWORD), // in buffer size

NULL, // out buffer

0, // out buffer size

NULL, // pointer to number of bytes returned

NULL); // ignored (=NULL)

if( !bRet )

returnFALSE;

GetCommState( m_hSer, &dcb );

// Purge any pending characters in the serial port.

PurgeComm(m_hSer, (PURGE_TXABORT |PURGE_RXABORT |PURGE_TXCLEAR | PURGE_RXCLEAR));

dcb.fRtsControl = RTS_CONTROL_TOGGLE;

SetCommState(m_hSer, &dcb);

returnTRUE;

}

完整的串口例程请与英创工程师联系获取。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35198
收藏 人收藏

    评论

    相关推荐

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 372次阅读

    适用于AM335x TRF7970A的neard(Linux NFC)构建说明

    电子发烧友网站提供《适用于AM335x TRF7970A的neard(Linux NFC)构建说明.pdf》资料免费下载
    发表于 10-26 11:00 0次下载
    适用于AM<b class='flag-5'>335x</b> TRF7970A的neard(Linux NFC)构建<b class='flag-5'>说明</b>

    FT232芯片设计的USB转RS232串口原理图

    FT232芯片设计的USB转RS232串口原理图
    发表于 10-21 11:06 0次下载

    AM335x硬件设计指南

    电子发烧友网站提供《AM335x硬件设计指南.pdf》资料免费下载
    发表于 09-19 11:05 0次下载
    AM<b class='flag-5'>335x</b><b class='flag-5'>硬件</b>设计指南

    快速实现C2000串口程序升级

    电子发烧友网站提供《快速实现C2000串口程序升级.pdf》资料免费下载
    发表于 08-29 10:50 0次下载
    快速实现C2000<b class='flag-5'>串口</b>程序升级

    集特推荐 双网10串口飞腾FT2000商用台式电脑主机

    前段时间为大家分享了国产龙芯、海光、飞腾D2000的商务台式机,它们的共同特点都是单网,1个RS232串口。今天就为大家推荐一款双网、可扩展10串口、14USB接口的飞腾FT200
    的头像 发表于 07-17 16:04 481次阅读
    集特推荐  双网10<b class='flag-5'>串口</b>飞腾FT2000商用台式电脑主机

    ESP32串口发送多于128个字节如何处理?

    ESP32串口发送多于128个字节如何处理,我想在收到100个字节时开启UART_RXFIFO_FULL_INT中断,是不是一定要设置成硬件控制模式,似乎库文件是这么写的,。各位高手是不是有更好的办法,谢谢。
    发表于 06-25 06:05

    esp32-c3串口无法下载怎么解决?

    请教esp c3串口无法下载问题,硬件图如下图所示,目前gpio2一直拉高的,gpio9拉低后按en复位,进入到如下模式,工具一直提示等待上电同步,一直下载不了,折腾几晚了,还请大佬们帮忙
    发表于 06-17 07:40

    485串口可以用can协议吗

    一、引言 随着工业自动化和智能控制技术的发展,通信协议在设备间数据传输和控制中扮演着越来越重要的角色。485串口和CAN协议是两种常见的通信协议,它们在不同的应用场景中发挥着重要作用。本文将对这两种
    的头像 发表于 06-16 09:21 1064次阅读

    esp32串口控模式和硬件控模式反复切换怎么解决?

    uart_hw_flow_init()后 进入硬件控模式 esp32串口控模式和硬件
    发表于 06-13 06:57

    三菱串口 fx0N编程如何使用?

    : 9600/7/ 偶/ 1 。 串口号: 默认为****1 。 通讯方式: 一主一从 硬件接线 : (1)采用标准三菱SC-09的RS232的编程电缆与PLC编程
    的头像 发表于 04-16 11:50 601次阅读
    三菱<b class='flag-5'>串口</b> fx0N编程<b class='flag-5'>口</b>如何使用?

    STM32G031k8t6串口发送为什么会进入硬件中断?

    STM32G031k8t6串口发送进入硬件中断
    发表于 03-13 07:59

    ZDP1440串口屏应用开发如何使用虚拟串口调试

    ZDP1440串口屏应用开发如何使用虚拟串口调试呢?本文将详细方法分享给大家。
    的头像 发表于 01-25 11:32 1602次阅读
    ZDP1440<b class='flag-5'>串口</b>屏应用开发如何使用虚拟<b class='flag-5'>串口</b>调试

    什么是RS-232串口?消费级电脑通常没有232串口的主要原因

    什么是RS-232串口?消费级电脑通常没有232串口的主要原因  RS-232串口是一种标准的串行通信接口,用于在计算机和外部设备之间传输数据,目的是为计算机和外部设备之间提供可靠的数据传输方法
    的头像 发表于 01-09 13:52 1049次阅读

    HLK-B35串口转WiFi模块的应用案例

    HLK-B35串口转WiFi模块,自带2.4G WiFi + BLE5.0 蓝牙,支持AP、STA及BLE混合模式,价格低至个位数,支持接入阿里云,定制版本可接入天猫精灵,在国内外均有多款成熟案例。
    的头像 发表于 12-25 10:37 1153次阅读