精华内容
下载资源
问答
  • Qt串口模块基本功能使用

    千次阅读 2017-03-16 00:06:29
    本文总结使用Qt集成的串口模块进行串口基本功能实现; 遍历系统下现有的串口设备 设置串口参数 打开&关闭串口 发送数据 接收数据 Markdown及扩展 Markdown 是一种轻量级标记语言,它允许人们使用易读易写...

    Qt串口编程

    本文总结使用Qt集成的串口模块进行串口基本功能实现;


    1. 头文件包含

    #include <QtSerialPort/QSerialPort>//串口接口
    #include <QtSerialPort/QSerialPortInfo>//串口接口信息

    同时需在.pro文件中添加QT += serialport,因为串口功能作为独立的一个模块存在。

    2. 遍历系统下的串口设备

    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
        {
        //通常通过串口名称进行连接,例COM1,所以在此处获取串口名称
            //qDebug() << "Name : " << info.portName();
            //qDebug() << "Description : " << info.description();
            //qDebug() << "Manufacturer: " << info.manufacturer();
            //qDebug() << "Serial Number: " << info.serialNumber();
            //qDebug() << "System Location: " << info.systemLocation();
    
        }

    3. 配置串口参数

    
        //创建串口对象
        QSerialPort *my_serialport= new QSerialPort;
    
        //设置串口号
        QString comname = "COM1";//可以在遍历设备中获取到可用设备;
        //检索系统是否存在同名串口设备,有则设置;
        foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
        {
            if(info.portName()==comname)
            {
                my_serialport->setPortName(info.systemLocation());
            }
        }
    
        //设置波特率,参数一是波特率,QSerialPort域下有所有的可选值,参数二是通信模式,包括单工,双工,全双工;
        my_serialport->setBaudRate(QSerialPort::Baud9600,QSerialPort::AllDirections);
    
        //设置数据位,QSerialPort域下有所有的可选值
        my_serialport->setDataBits(QSerialPort::Data8);
    
        //设置校验位,QSerialPort域下有所有的可选值
        my_serialport->setParity(QSerialPort::NoParity);
    
        //设置停止位,QSerialPort域下有所有的可选值
        my_serialport->setStopBits(QSerialPort::OneStop);

    4. 打开&关闭串口

        bool Rsl=my_serialport->open(QIODevice::ReadWrite);//打开串口并选择读写模式
        if(Rsl)
        {
            //qDebug()<< "串口打开成功!"
        }
        my_serialport->close();//关闭串口

    5. 数据发送

        //write()函数有多个重载,详情可以把光标停在“write”上,按F2跳转到声明即可查看到所有重载函数,选择自己使用的;
        char buf[128] = "senddata";
        my_serialport->write(buf, sizeof(buf));
    

    6. 数据接收

        //read()函数也有多个重载,详情可以把光标停在“read”上,按F2跳转到声明即可查看到所有重载函数,选择自己使用的;
        char buf[128] = {0};
        my_serialport->write(buf, sizeof(buf));

    7. 总结

    串口的数据接收通常使用定时器进行不断查询,实现异步通信。
    具体可参考我所用的Demo

    展开全文
  • 六合一多功能串口模块

    千次阅读 2018-11-22 14:29:08
    最近在做串口的测试的相关内容,需要不断地更换测试模块,一直想买一个模块,今天总算买了这款六合一的串口转换模块,本模块的实物图片如下。   正面:     背面:         功能及产品特点   ...
    • 介绍:

     

    最近在做串口的测试的相关内容,需要不断地更换测试模块,一直想买一个模块,今天总算买了这款六合一的串口转换模块,本模块的实物图片如下。

     

    正面:

     

     

    背面:

     

     

     

     

    • 功能及产品特点

     

     

    1、超小体积。电路板仅3.1cm X 1.8cm。超小的体积,不足一个 U盘大小,仅占用一个 USB插口的宽度,即使是那些两个USB口距离非常紧的笔记本电脑上也可以轻松并排放置两个。

    2、3.3V和+5V兼容。无论是3.3V电压,还是+5V电压,该模块都可以支持。

     3、 3.3V和+5V供电输出。可以通过该模块给单片机系统供电,方便调试。最大电流输出 500mA。

    4、过流保护。板载自恢复保险丝,即使将正负极短路也不会损坏电路板或者计算机。如果出现短路或者电流超过 500mA时,保险丝会自动断开,待电路恢复为非短路状态时保险丝恢复正常。有效保护计算机的安全。

    5、收发指示灯。当串口的发送线或者接收线上有数据时,板上的收发指示灯会亮起,方便调试。

    6、TTL电平接口。

    7、RS232电平接口。

    8、RS485电平接口,自动收发控制,无需收发控制线,默认接收状态,发送线上有数

    据时改为发送状态。

    9、USB,TTL,RS232,RS485四种电平自由互转,独特的电路设计,通过开关实现功

    能切换,方便快捷。

    10、高速稳定的通讯速率。波特率最高1Mbps。

    11、引出DTR、RTS控制信号,多功能,支持MSP430单片机BSL下载等。

     

    • 功能自闭环测试

     

     

       通过 USB转TTL的自闭环测试和USB转232自闭环测试可以验证产品功能。方法如下:

    USB转TTL自闭环:将模块的TXD和RXD用杜邦线连接起来,按照功能选择中的说明拨好对应的拨码开关,然后将模块插入到计算机中,用串口调试助手发送数据,看是否有对应的数据返回。如果能收到发送出去的数据,证明模块功能正常。

     

    USB转232自闭环:将模块的232-TXD和232-RXD用杜邦线连接起来,按照功能选择中的说明拨好对应的拨码开关,然后将模块插入到计算机中,用串口调试助手发送数据,看是否有对应的数据返回。如果能收到发送出去的数据,证明模块功能正常。

     

     

    • 功能选择

     

    本串口转换模块通过一个两位的拨码开关和贴片开关选择转换功能。功能配置如下表:

     

     

     

    • 接口接线说明

     

     

    我只是买了,绝非是淘宝卖家宣传,是为了将来自己的调试方便,仅此说明!!

    展开全文
  • 7046T并不是一款简单的串口转wifi模块,它具有Modbus TCP、自定义注册报、自定义协议转化等多种高级功能,非常适合于物联网应用。只有wifi接口,功耗低,待机功耗3.8mA,全速工作95mA。7046T的高级功能包括:支

    串口无线模块ZLSN7046T是上海卓岚推出的wifi转串口模块。它能够将wifi信号转化为串口信号,且支持多种功能,邮票孔封装,体积小巧可以外置天线或者内置天线。7046T支持一个UART TTL电平串口转WIFI,可以作为STA或者AP方式。支持921.6Kbps的高波特率。7046T并不是一款简单的串口转wifi模块,它具有Modbus TCP、自定义注册报、自定义协议转化等多种高级功能,非常适合于物联网应用。只有wifi接口,功耗低,待机功耗3.8mA,全速工作95mA。7046T的高级功能包括:支持Modbus转RTU、支持多主机同时访问而不冲突、支持自定义心跳包和注册包功能、支持“转码”自定义协议的读取和转化功能、支持http方式的数据提交和下发功能、支持TCP服务器客户端共存。支持使用zlvircom工具跨网段搜索设备,支持远程升级和网页自定义下载。支持二进制格式的类AT指令,无需切换为AT配置模式。ZLSN7046TN支持P2P通讯方式。
    硬件上7046T采用了最新的WIFI芯片组,采用ARM M4内核,主频192MHz,采用实时操作系统。其中ZLSN7046T-5支持连接5.8G的WIFI热点。wifi模式支持802.11b/g/n,支持WEP64/128, TKIP, AES, WPA, WPA2, WAPI加密模式。7046T和计算机连接上同一个AP时,计算机和模块可以互相连通。7046T具有很强的接收灵敏度,在内置天线情况下室内可以达到70~100米通讯距离。7046T满足ROSH要求。
    7046T供电电压为3.3V,具有丰富的外部功能引脚,包括485发送控制脚、运行指示灯、数据活动指示灯、TCP连接指示灯、wifi工作模块指示灯、wifi连接指示灯等。
    特点
    支持802.11b/g/n。
    支持硬件流控CTS/RTS和软件流控XON/XOFF。
    支持在系统通过网口升级程序。
    支持模块之间的wifi对连。
    一键搜索配置。当wifi和PC或者路由器建立链路后,通过ZLVircom软件一键式搜索和配置设备参数,设备IP和PC不必处于同一个网段。
    支持DNS解析,支持作为DHCP Client,作为AP模式时也可以作为DHCP Server。
    支持TCPServer、TCP Client、UDP、UDP组播。作为Server时支持多达30个TCP连接同时和联网模块通信;作为Client时可以连接到7个目的IP。
    支持设备连接上发送MAC地址功能,方便云端管理设备。
    支持远程通过软件查看设备的TCP连接状态、串口数据发送、接收状态。虚拟串口支持数据监视功能。
    支持Modbus网关功能,支持Modbus RTU转Modbus TCP。可以支持存储型的Modbus,可以自动采集设备数据,并存储起来;也支持非存储模式的Modbus网关。
    支持多主机功能:在一问一答的查询方式下,支持网口端允许有多台计算机同时访问同一个串口设备。
    支持自定义心跳包和注册包功能:可以方便和云端进行通信和设备识别。
    支持TCP建立连接需要密码验证的功能,保证连接安全性。
    支持“转码”功能,可以实现对特定设备的协议的翻译工作,让不同的设备对接统一的软件平台。
    支持http方式的数据提交和下发功能,云端可以直接使用http的GET指令和设备的串口数据进行交互。

    展开全文
  • 01.串口发送模块uart_byte_tx.v module uart_byte_tx( Clk ,//50M时钟 Rst_n ,//复位信号 send_en ,//发送使能信号 baud_set ,//波特率选项 data_byte ,//要发送的单字节数据 rs232_tx ,//要...

    前言

    博客上面,人人都说uart简单,刚上手时,笔者也是一脸懵逼。只能假装uart协议确实简单,只不过。。。。(手动笑脸)

    00.串口发送原理图

    在这里插入图片描述

    01.串口发送模块uart_byte_tx.v

    module uart_byte_tx(
    	Clk				,//50M时钟
    	Rst_n			,//复位信号
    	send_en			,//发送使能信号
    	baud_set		,//波特率选项
    	data_byte		,//要发送的单字节数据
    	
    	rs232_tx		,//要发送出去的单比特数据
    	tx_done			,//发送接收标志
    	tx_state		 //发送的状态
    
    );
    
    	input 			Clk				;
       input 			Rst_n			;
       input 			send_en			;
       input 	[2:0]	baud_set		;
       input 	[7:0]	data_byte		;
    
    	output 	reg		rs232_tx		;
    	output 	reg		tx_done			;
    	output 	reg 	tx_state		;
    	
    	//两级寄存器消除亚稳态
    	reg [7:0] r_data_byte;
    	
    	//根据波特率选择查找表,选择分频计数时的最大值
    	reg [15:0] baud_dr;
    	
    	//根据上面分频计数时的最大值,生成波特率时钟	
    	reg 			bps_clk;
    	reg [15:0] 	div_cnt;
    	
    	//这是根据波特时钟产生的计数器,方便后面进一步控制数据串并转换
    	reg [3:0] bps_cnt;
    	
    	
    	
    	
    //两级寄存器消除亚稳态
    	//reg [7:0] r1_data_byte,r2_data_byte;
    	
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)begin
    		r_data_byte <= 'd0;
    	end
    	else if(send_en) begin
    		r_data_byte <= data_byte;
    	end
    	
    //根据波特率选择查找表,选择分频计数时的最大值
    	//reg [15:0] baud_dr;
    	
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		baud_dr <= 15'd5207;
    	else begin 
    		case(baud_set)
    			0:baud_dr <= 16'd5207;
    			1:baud_dr <= 16'd2603;
    			2:baud_dr <= 16'd1301;
    			3:baud_dr <= 16'd867;
    			4:baud_dr <= 16'd433;
    			default:baud_dr <= 16'd5207;
    		endcase
    	end
    	
    		
    //根据上面分频计数时的最大值,生成波特率时钟	
    	//reg 			bps_clk;
    	//reg [15:0] 	div_cnt;
    	
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		div_cnt <= 'd0;
    	else if(tx_state)
    		if(div_cnt == baud_dr)//这里之前赋值为baud_set了,波形不对
    			div_cnt <= 'd0;
    		else 
    			div_cnt <= div_cnt + 1'b1;
    	else div_cnt <= 'd0;
    	
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		bps_clk <= 1'b0;
    	//else if(div_cnt == baud_dr)//这是每次计数完的时候产生的波特率时钟,如果在计数结束时生成时钟就统一往后延迟了下,可以选择在div_cnt=1时生成
    	else if(div_cnt == 1'b1)
    		bps_clk <= 1'b1;
    	else 
    		bps_clk <= 1'b0;
    	
    //这是根据波特时钟产生的计数器,方便后面进一步控制数据串并转换
    	//reg [3:0] bps_cnt;
    	
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		bps_cnt <= 'd0;
    	else if(bps_cnt == 'd11)
    		bps_cnt <= 'd0;
    	else if(bps_clk)
    		bps_cnt <= bps_cnt + 1'b1;
    	else 
    		bps_cnt <= bps_cnt;
    		
    //根据波特率时钟产生的计数器,选择数据的传输
    	localparam START_BIT = 1'b0;
    	localparam STOP_BIT = 1'b1;
    
    
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		rs232_tx <= 1'b1;
    	else 
    		case(bps_cnt)
    			'd0:rs232_tx <= 1'b1;
    			'd1:rs232_tx <= START_BIT;
    			'd2:rs232_tx <= r_data_byte[0];
    			'd3:rs232_tx <= r_data_byte[1];
    			'd4:rs232_tx <= r_data_byte[2];
    			'd5:rs232_tx <= r_data_byte[3];
    			'd6:rs232_tx <= r_data_byte[4];
    			'd7:rs232_tx <= r_data_byte[5];
    			'd8:rs232_tx <= r_data_byte[6];
    			'd9:rs232_tx <= r_data_byte[7];
    			'd10:rs232_tx <= STOP_BIT;
    			default:rs232_tx <= 1'b1;
    		endcase
    		
    //tx_done:当波特率时钟计数器计数到11时,计数就清零,方便进行下一轮的计数
    
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		tx_done <= 1'b0;
    	else if(bps_cnt == 'd11)
    		tx_done <= 1'b1;
    	else 
    		tx_done <= 1'b0;
    	
    	
    //tx_state:通过send_en和波特率计数(bps_cnt == 11)描述出发送的状态
    
    	always@(posedge Clk or negedge Rst_n)
    	if(!Rst_n)
    		tx_state <= 1'b0;
    	else if(send_en)
    		tx_state <= 1'b1;
    	else if(bps_cnt == 'd11)
    		tx_state <= 1'b0;
    	else 
    		tx_state <= tx_state;
    	
    endmodule
    
    

    02.串口发送仿真uart_byte_tx_tb.v

    `timescale 1ns/1ns
    `define clock_period 20
    
    module uart_byte_tx_tb;
    
    	reg 			Clk				;
    	reg 			Rst_n			;
    	reg 			send_en			;
    	reg 	[2:0]	baud_set		;
    	reg 	[7:0]	data_byte		;
    
    	wire			rs232_tx		;
    	wire			tx_done			;
    	wire 			tx_state		;
    	
    
    	uart_byte_tx  uart_byte_tx_inst(
    		.Clk		(Clk		),
    		.Rst_n		(Rst_n		),
    		.send_en	(send_en	),
    		.baud_set	(baud_set	),
    		.data_byte	(data_byte	),
    	                
    		.rs232_tx	(rs232_tx	),
    		.tx_done	(tx_done	),
    		.tx_state	(tx_state	)
    
    	);
    
    	//产生时钟
    	initial  Clk = 1'b1;
    	always #(`clock_period/2) Clk = ~Clk;
    
    	//产生激励信号
    	initial begin
    		Rst_n = 1'b0;
    		data_byte = 8'b0;
    		send_en = 1'b0;
    		baud_set = 3'd4;
    		#(`clock_period*20 + 1);
    		Rst_n = 1'b1;
    		
    		
    		#(`clock_period*50);
    		data_byte = 8'haa;
    		send_en = 1'd1;
    		#`clock_period;
    		send_en = 1'd0;
    		@(posedge tx_done);
    		
    		
    		#(`clock_period*5000);
    		data_byte = 8'h55;
    		send_en = 1'd1;
    		#`clock_period;
    		send_en = 1'd0;
    		@(posedge tx_done);
    		
    		
    		#(`clock_period*5000);
    		data_byte = 8'hdc;
    		send_en = 1'd1;
    		#`clock_period;
    		send_en = 1'd0;
    		@(posedge tx_done);
    		
    		#(`clock_period*5000);
    		data_byte = 8'hcd;
    		send_en = 1'd1;
    		#`clock_period;
    		send_en = 1'd0;
    		@(posedge tx_done);
    		
    		#(`clock_period*5000);
    		$stop;	
    	end
    
    
    endmodule
    
    

    功能仿真如下:

    在这里插入图片描述

    后记

    下面就开始,串口接收模块。

    展开全文
  • 串口模块测试

    2018-06-19 11:06:23
    /*******************************************************程序功能串口模块测试开发环境:Keil4硬件环境:CEPARK多功能开发学习板/实验箱(2013版),STC12C5A60S2,12M晶振 接线说明:...
  • 一、串口转以太网模块是什么串口转以太网模块是一种支持10M/100M自适应以太网接口,集成众多网络通信协议,支持TTL串口转以太网,可以实现UART转以太网双向透传功能的嵌入式物联网设备。成都众山科技生产销售的串口...
  • 本章节介绍畅学多功能51实验箱一些基础模块的硬件连接使用情况 1) 浏览硬件测试说明 2) 准备相关配件 3) 按测试说明连接硬件 4) 下载测试程序 5) 观察实验现象 6) 确认功能模块是否正常 如无特殊说明,...
  • ATK-hc05蓝牙串口模块是一款高性能的主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。这里给大家提供了ATK-hc05蓝牙串口模块驱动下载,推荐有需要的用户下载使用。 ...
  • 1、5路串口 5路DB9串口,可以进行串口通讯,一公一母2个接头方便扩展接插。 1) 原理图 2) 实物图 3) 接口说明 串口接口:DB1、DB2 DB1为母头,DB2为公头,根据需要选用。 控制端:JP8(DB1), JP76(DB2...
  • CP2102六合一多功能串口模块使用

    千次阅读 2018-12-10 21:53:00
    为什么80%的码农都做不了架构师?>>>   ...这是一个非常好用的调试、烧录接口工具,价格便宜(淘宝10...二、功能选择及接线   转载于:https://my.oschina.net/OneNb/blog/2986487
  • HC05 模块,是 ALIENTEK 生成的一款高性能主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP 等智能终端配对,该模块支持非常宽的波特率范围:4800~1382400,并且模块兼容 5V 或 3.3V ...
  • 串口wifi模块又有什么功能呢?wifi方案设计远嘉科技给大家讲解有关串口wifi模块的工作原理,以及详细功能介绍。串口wifi模块的简介:采用UART接口,支持串口透明数据传输模式,并且具有多模安全能力。内置TCP/IP协议...
  • ATK-HC05 蓝牙串口模块

    2018-07-22 17:34:49
    ATK-HC05 模块,是 ALIENTEK 生成的一款高性能主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、 PDA、 PSP 等智能终端配对,该模块支持非常宽的波特率范围: 4800~1382400,并且模块兼容 5V 或 ...
  • 详见uart串口发送模块功能实现及仿真 01.串口接收模块 详见uart串口接收模块实现、并完成led板级测试 02.串口接收模块仿真 `timescale 1ns/1ns `define clock_period 20 module uart_byte_rx_tb; reg Clk ;...
  • 如果能收到发送出去的数据,证明模块功能正常。 4.2 USB 转 232 自闭环 将模块的 232-TXD 和 232-RXD 用杜邦线连接起来,按照功能选择中的说明设置好对应的跳线帽,然后将模块插入到计算机中,用串口调试助手发送...
  • 国内首款具备P2P功能的WiFi串口模块,支持云端P2P的远程数据传输 支持UART/GPIO/AD数据通讯接口 ,支持Smart Link智能联网功能(提供安卓,苹果的APP)
  • 关于HC-05蓝牙模块蓝牙模块BT-HC05模块是一款高性能的蓝牙串口模块。可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。宽波特率范围4800~1382400,并且模块兼容单片机系统。当主从模式两个蓝牙...
  • 实验目的:SCU模块通过串口网关功能实现Modbus RTU主站功能 1.系统概述和硬件搭建 系统概述: 本次实验通过SCU模块串口网关功能,使用FINS Command #2804功能码将FINS命令转换为Modbus RTU命令通过CMND指令...
  • 通过该软件可以连接WIFI串口模块进行通信,实现手机串口连接。类似计算机的串口助手,是电子工程师的开发利器。该软件有以下功能: wifi串口分为客户模式与服务端模式 发现和连接WIFI串口模块 接收和发送数据 可选择...
  • 在说三层架构之前,先介绍一下串口模块的相关函数,这个模块把串口发送以及接收相关的功能给抽象出来了。我后面将以这个模块为例介绍设计三层架构的方法。之所以要以这个模块为例子,是因为如果介绍3层架构的例子...
  • 即CH340对应的端号,这样才能起到检测串口模块功能。) 2、给51V3最小系统下载对应程序 选择对应最小系统单片机型号 选择串口号打开程序软件(本次程序为单色流水灯)点击下载按钮将51V3最小系统跳线帽进行拔插...
  • 一、串口转以太网模块是什么串口转以太网模块是一种支持10M/100M自适应以太网接口,集成众多网络通信协议,支持TTL串口转以太网,可以实现UART转以太网双向透传功能的嵌入式物联网设备。成都众山科技生产销售的串口...
  • 蓝牙模块BT-HC05模块是一款高性能的蓝牙串口模块。 可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。 宽波特率范围4800~1382400,并且模块 兼容单片机系统。 当主从模式两个蓝牙模块配对成功...
  • 关于HC-05蓝牙模块蓝牙模块BT-HC05模块是一款高性能的蓝牙串口模块。可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。宽波特率范围4800~1382400,并且模块兼容单片机系统。当主从模式两个蓝牙...
  • 该ATK-LORA-01无线串口模块工作频率410Mhz-441Mhz,以1Mhz频率为步进信道,共32个信道,可通过AT指令在线修改串口速率,发射功率,空中速率、工作模式等各种参数,并且支持固件升级功能。 模块电气参数: 附件资料...
  • 倍福PLC串口模块使用

    千次阅读 热门讨论 2019-03-08 14:04:23
    2、将功能块的调用Mode修改: 修改为: 此外,COM口设置如下,另外,该COM口不需要扫描,是直接添加的 此处设置硬件类型为232或485,注意:倍福PLC的232和485只能从硬件选型上确定,此处软件选择作用不大 .....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,775
精华内容 1,110
关键字:

串口模块功能