-
串口属性设置_串口服务器配置及串口调试的6大技巧
2021-01-13 08:32:16在使用终端服务器之前,必须在连接和使用系统之前根据自己的操作环境和应用程序要求配置参数。这些参数主要包括网络参数,每个串行端口的操作模式,打印服务以及设备本身的管理信息和其他内容。2、如何设置串行...1、如何配置串行服务器?
在使用终端服务器之前,必须在连接和使用系统之前根据自己的操作环境和应用程序要求配置参数。这些参数主要包括网络参数,每个串行端口的操作模式,打印服务以及设备本身的管理信息和其他内容。
2、如何设置串行服务器的串行端口属性,例如波特率?
在设置屏幕上,输入程序设置,选择程序,然后输入串行参数。
3、为什么使用虚拟串行端口传输文件时数据丢失?
这时,虚拟程序会丢失数据,主要是因为虚拟串行端口程序更快地完成数据,并且当虚拟程序将数据发送到远程设备时,串行端口缓慢地发送自身,可以在虚拟程序中设置“模拟波特率”。
4、串行端口自检
串行端口自检检测串行端口好坏的一种常用方法。连接短插针2和3,并使用串行调试助手手动发送一个(或多个)字节。如果接收区域可以接收相同的字节,则表示串行端口良好,并且可以正常工作;否则,串口有问题。添加串行服务器后,无论交叉还是直接连接,该方法仍然可以应用。
5、串口测试模拟
对于串行端口测试,可以使用计算机来模拟设备,但不一定必须是真实的设备。也可以模拟波特率,尝试使用其他串行调试助手。一个串行调试助手存在问题。例如,串行端口被占用的消息与串行端口问题不同。调试助手也可能是软件问题。此时,可以尝试更改软件。
6、使用串行端口服务器的两种方法
虚拟串行端口和IP形式。
注意:这两种方法基本上是等效的,但是如果其中一种无法连接,则可以尝试另一种。即,监视软件可能仅支持一个或另一个。
-
STM32串口配置一直进入中断--自身原因
2020-04-10 09:43:02在一块上一直用的好好的,然后下载到另外两块一样的板子上,居然上电后程序一直进入串口中断,而且死里面出不来了,按照网上大部分的方法配置都无效果,但是为什么之前用的那块一直是能行的呢? 结果发现,这两块...这几天调试一个三个串口的板子,在一块上一直用的好好的,然后下载到另外两块一样的板子上,居然上电后程序一直进入串口中断,而且死里面出不来了,按照网上大部分的方法配置都无效果,但是为什么之前用的那块一直是能行的呢?
结果发现,这两块之前没运行过,存储器中未存储相关参数,所以上电从eeprom中读出来都是-1,在初始化串口波特率时,由于波特率数组中无对应参数,造成初始化波特率,数据格式异常,故一直进入中断函数。
修改读出判断函数,纠正参数,解决问题。
还是得细心哈~
-
串口通信
2021-01-24 15:21:40从软件得角度来说,我们不需要考虑串口得232啊,422啊什么的串口协议,我们只要知道,我把串口的参数都配置的跟对方一样,那就可以收到数据了,收不到,那就是线路出了问题(要么没这个串口,要么参数没设的跟对方...串口通信类似于文件读写,可以理解成操作系统中有一个默认文件,无论是你发还是收都是对这个文件进行操作
从软件得角度来说,我们不需要考虑串口得232啊,422啊什么的串口协议,我们只要知道,我把串口的参数都配置的跟对方一样,那就可以收到数据了,收不到,那就是线路出了问题(要么没这个串口,要么参数没设的跟对方不一样)
串口是什么,我怎么知道我有没有连上,串口可以在电脑-管理-设备管理器-端口的子列表中查看,列表中没有就代表没有这个串口,那就不是软件的问题了
串口收数据的问题:当一方在源源不断的发送,我们在一直收的时候,可能遇到不够同步的问题,就是说你计划每次都收10个字节,但是有一次就收到8个字节,下次你还是10个10个的收,这就会导致从此开始数据全部都错位了;因此,为了适配解决这个问题,建议不管收到多少数据,都存到一个队列里,你用的时候从队列的头开始取,这就可以避免这个问题了;
//串口需要配置的参数:串口名,数据位,波特率,校验位,停止位 QString serNum=ui->comboBox_DKH->currentText(); int dataBits=ui->comboBox_SJW->currentText().toInt(); int baudRate=ui->comboBox_BTL->currentText().toInt(); int checkBits=ui->comboBox_BTL_2->currentIndex(); float stopBits=ui->comboBox_TZW->currentText().toFloat(); HANDLE handle=INVALID_HANDLE_VALUE;//串口句柄 //打开串口,可以通过handle的值是否大于0来判断是否打开成功 //打开成功的前提是电脑-管理-设备管理器-端口的子列表里必须有你要连的这个串口号 handle=CreateFile(LPCWSTR(serNum.toStdWString().c_str()), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL); //给串口配置参数 DCB dcb; //获取串口的默认信息(没啥用,反正要自己配) GetCommState(handle,&dcb); dcb.BaudRate=baudRate;//波特率 dcb.ByteSize=dataBits;//数据位 //校验位 if(checkBits==0){dcb.Parity=NOPARITY;}//无校验 else if(checkBits==1){dcb.Parity=ODDPARITY;}//奇校验 else if(checkBits==2){dcb.Parity=EVENPARITY;}//偶校验 //停止位 if(stopBits==1){dcb.StopBits=ONESTOPBIT;}//1个停止位 else if(stopBits==1.5){dcb.StopBits=ONE5STOPBITS;}//1.5个停止位 else if(stopBits==2){dcb.StopBits=TWOSTOPBITS;}//2个停止位 //将参数配置给串口句柄 SetCommState(handle,&dcb); //串口的读写 //读取数据:串口句柄,存放数据的容器,自己预计要收的数据的长度,实际取到数据的长度 ReadFile(handle,data,datasize,&wCount,NULL); //发送数据:串口句柄,要发送的数据(指针,数组),要发送的数据长度,实际发出去的数据长度 WriteFile(handle,data,datasize,&wCount,NULL);// //关闭串口 CloseHandle(handle); handle=INVALID_HANDLE_VALUE;
队列处理数据逻辑:
将收到的数据一个字节一个字节的追加到队列中,要取用的时候,从队列头开始取,可以判断取到的第一个是不是自己要的数据,如果不是,就删掉,再找下一个,直到找到我们需要的那个报文头;
-
笔记之STM32F072CBT6芯片的串口高级功能之反相配置问题(HAL库)
2021-01-12 17:05:50串口的使用,通常都是修改波特率,停止位,校验位等这几个常见的参数,所以这些的配置基本是没有什么问题的,不过今天逛论坛的时候发现有些芯片是支持软件反相功能的,目前我发现F0的大多都有这个功能,F1的没有这个...串口的使用,通常都是修改波特率,停止位,校验位等这几个常见的参数,所以这些的配置基本是没有什么问题的,不过今天逛论坛的时候发现有些芯片是支持软件反相功能的,目前我发现F0的大多都有这个功能,F1的没有这个功能,大家可以去看看其他一些芯片。
一、F0芯片手册上寄存器
在串口的控制寄存器 2( USART_CR2)第17位
注意:这里要配置反相,必须是UE=0的时候才能改写
在F1的手册上,这几个位是保留位二、进行测试
理论上可以实现的,故我直接在我只有的串口代码上直接加下面代码,直接操作寄存器
USART3->CR1 &=~(1<<0); // UE=0 USART3->CR2 |=1<<18; USART3->CR2 |=1<<17;// TX 有效电平反向 USART3->CR1 |=1<<0; // UE=1
下面是我在线调试采集的现象
可以看到我只是在下面增加这几行代码,寄存器对应的值发生了变化(这样的话可以在硬件上节省几毛钱),可以直接软件控制反相,不需要硬件上增加反相器。同时我想HAL库的话,应该也是可以直接控制的。
之后对工程进行了搜索TXINV关键字,发现在这下面的配置中有支持TX反相的功能配置
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;//高级功能初始化
然后我将上面的配置改为下面配置
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_TXINVERT_INIT;//TX 反相
按照这个配置,照理调试的时候也是可以将寄存器的值进行改变的,但是调试时TXINV的值是不变的
可以看到调试时,寄存器值根本没变,奇怪,我直接控制寄存器都可以控制,为啥使用HAL反而还不能控制了?
之后再HAL的串口初始化函数中找了许久,没找到问题,实在找不到了,我打开CUBEMX查看了下这个芯片,发现他也是支持反相的
于是我重新创建了一份只有串口初始化的工程,发现问题了huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_TXINVERT_INIT; huart3.AdvancedInit.TxPinLevelInvert = UART_ADVFEATURE_TXINV_ENABLE;
他选择了TXINV配置后,还对TXINV进行了使能…
于是我将这行代码复制我之前测试的上面去,哎,成功了…
三、总结及现象
对于一个不太熟悉的库,首先参考他的例程配置,可以减少很多不必要的麻烦
另外这个串口的高级功能,要先配置,再使能,同样这里的高级功能还有其他的一些如自动检测波特率功能,到时也可以试试。
图1是串口3输出软件不反相
图2是串口3输出软件反相
-
一阶互补滤波参数初始值是什么
2016-11-08 15:35:29// 开启串口以便监视数据 delay(1000); } void loop() { long o_timer = timer; // 上一次采样时间(ms) float Y_Accelerometer = gDat(Acc, 1); // 获取向前的加速度 float Z_Accelerometer = gDat(Acc, 2); ... -
HAL库教程5:串口数据发送
2019-04-09 22:46:26使用CubeMX配置串口1 配置引脚 我的板子上使用插针引出了串口1,串口1连接PA8与PA9。 配置串口通信参数 使能串口1,并配置为同步模式,波特率为115200,模式8... 同样是串口初始化的代码,为什么要分开... -
嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解
2019-04-05 08:52:37在上一篇文章中,我们介绍了串口的一些基本知识、串口配置接口 termios结构体的概念,串口的配置参数有n多个,这里面不用都背下来,什么时候使用,翻看手册即可,但是有两个 参数是一定要理解的,就是VMIN和VTIME。... -
MAC串口开发环境搭建
2016-07-22 16:58:54什么是串口 安装USB转串口驱动 安装终端仿真程序 配置SecureCRT参数 串行通信参数 SecureCRT开发配置 什么是串口串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就... -
Python3-串口:1 串口的基础知识补充
2019-11-04 11:02:11下位机(比如单片机)通过串口线(比如RS232)发送数据给上位机(PC),下位机部分主要程序就是将数据按照一定的封装格式打包好数据,然后配置好串口相关参数(比如波特率,校验位什么的),上位机需要有软件将串口... -
GD32实战6__串口读写
2019-06-13 17:32:21目的 串口通信是非常非常常见的一种通信方式,必须掌握的。可以从如下几个方面掌握串口通信: 串口通信原理,此处我们只研究异步串口 GD32常见的几种串口通信...那么配置的这些参数分别代表什么意思呢? 串口... -
S3C2440之串口
2018-03-01 12:53:44关于具体的使用,也是先配置端口为串口功能,然后配置串口的一些参数,如波特率、数据位等等。最后是通过中断或者轮询的方式从缓冲器(FIFO)中读取或写入数据。 这里就不提供代码了,实验... -
android 串口 c代码有问题吗,为什么有时候好用有时候不好用
2017-08-04 06:18:13//配置串口参数 int set_opt(int fd, int nSpeed, int nBits, char nEvent, int nStop) { struct termios newtio, oldtio; if (tcgetattr(fd, &oldtio) != 0) { perror("SetupSerial 1"); return -1; } ... -
STM32串口通信
2020-12-03 19:29:19这两种方法其实最后实现的配置结构是一样的只不过基于寄存器的方式会更简单更明了直接使用寄存器,而基于固件库(库开发)会多一个配置寄存器的步骤但是具体参数更直观,程序运行占用资源更少。 二、STM32的USART... -
重定向STM32串口输出,C语言实现过程!
2021-02-14 21:15:47提示:以前在学stm8的时候非常不解用printf串口打印为什么要加上重定义,它定义在了什么地方!为什么函数可以有不确定的参数(学了这么久,这也从没有见过啊!)在函数的参数中,今天来说明一下! 提示:文末有个... -
CubeMx配置生成代码系列(四) CubeMx配置定时器及PWM
2020-09-03 16:52:43一、PWM是什么? PWM在我以前的工作中也是经常使用,一般是控制电机需要的PWM波的数量。为防止以后需要先自己配置下熟悉一下流程 二、配置步骤 1.关于时钟和串口等功能配置参考我以前的帖子,这里直接配置定时器2 2... -
为什么我包含了stdio.h,也重新定向到了C库函数,但进行stm32和电脑的串口实验中,printf语句还是没有执行?
2019-03-28 21:47:43本来是模仿秉火的程序写的,但结果串口发数据可以控制灯的状态,但printf后面的内容却没法在串口助手上显示,后来几乎是把源代码都复制了过来,还是显示不了。源代码就可以在串口助手上显示printf语句内的内容,keil... -
正点原子以太网转串口模块 调试和使用方法(实战详解)
2021-01-09 22:21:10到手后首先就是来测试下模块有没有正常运行,以及模块的一些参数配置 相比于说明文档中我想从用户的角度来说明软件的使用方式 COM测试 首先是使用uart转usb的串口助手和我们的以太网连接,这样就可以测试模块uart的... -
Linux-2.6 16c550 串口驱动移植
2012-10-09 11:15:25本文中将要说道的是Linux驱动移植中最为初级最为简单的一种,就是通用性很强的UART设备驱动的...其实说到底我也没干什么,就是配置了一些参数而已,剩下的就都交给platform和8250了。 下面就是重要的结构体的配置具 -
通过ipmi sol登陆服务器虚拟串口ttyS0后,系统起来后键盘无法输入
2017-06-14 02:07:02会是什么原因导致键盘无法输入的呢 对比两者启动打印中键盘设备信息: centOS: input: American Megatrends Inc. Virtual Keyboard and Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.4/3-1.4:1.0/... -
十分钟nRF24L01完成数据传输代码编写--NRF24L01由入门到精通01
2020-04-21 22:45:382、什么是TTL串口模块转接板 3、什么是USB无线串口模块 二、连接方式 三、配置方法 1、USB无线串口 默认配置 2、TTL串口模块转接板默认配置 3、更改配置 4、参数储存位置 四、一台电脑对单片机串口双向通信 ... -
STM32中I/O口操作为什么要不断设置使能时钟
2020-07-15 11:11:48看了STM32操作 I/O 口的步骤,是不是一头雾水,因为我们以前学习51单片机的时候,根本没有这么麻烦,I/O 想输入就直接读,想输出就直接赋值,串口、AD转化、外部中断等等也都是想用就用,不需要单独配置时钟。... -
请大神看一下我的代码还缺什么文件,该怎么改啊
2014-12-13 01:57:32* 功能:时钟配置初始化 * 形参:无 * 返回:无 /************************************************************************/ void CLK_Init(void) { /*对于内部高速时钟HSI[16MHz],其逻辑关系是... -
通信协议第一篇
2013-01-28 21:56:50这是我第一次用MFC解析通信协议,自然问题多多,还好...首先你要打开串口,然后从串口中接收数据,这里的读取需要用线程去读,每次读一个buf,然后对这个buf进行判断,根据通信协议的文档判断每一个buf是什么意思,... -
创龙DSP6748学习之RS485收发
2018-08-24 20:09:001. 先看下原理图,第一个问题,RS485其实就是使用的串口USART1,同时485的输出脚之间接120欧姆的电阻。 遇到个问题,为什么有两个使能引脚?还有RS485_A和RS485_B为什么分别... // 配置 UART1 参数 // 波特率 115... -
UBOOT如何引导kernel
2013-08-30 13:33:591、u-boot先初始化一些必要的设备,如串口、网卡、flash、显示屏等驱动。 2、从flash、SD卡、tftp服务器取内核映像文件。 3、将内核映像文件解压到内存。 4、校验内核。 5、设定配置参数,跳到内核执行。 u... -
U-Boot bootargs简析
2018-05-07 23:37:00Linux内核启动时需要一些配置信息,如根文件系统的类型、flash分区情况、串口终端的编号、内存的使用情况等等,而由于U-Boot和Linux Kernel的镜像是独立的两个文件,所以只能两者约定好在内存的什么地方存放启动参数... -
用KEIL实现联机调试的步骤
2011-05-21 22:11:00作者:iamlaosong keil除了可以编写、编译和仿真执行来调试用户...2、修改KEIL安装点keil/c51/FlashMon目录下与单片机型号一致的配置文件config.inc,主要是根据实际情况修改cpu_clock和code_start两个参数值,我改为 -
软考 网络工程师
2009-08-27 15:21:30在调用超级终端程序进行设备连接时,应该对设备的连接参数进行正确设置,参数主要包括串口数据传输率、数据位数。停止位数以及是否有奇偶校验。清给出正确的连接参数,以便进入 Cisco 设备的虚拟操作台,进行设备...
-
Android开发基础不牢?Android性能优化之启动优化实战篇,内含福利
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
水下无线传感器网络中用于目标跟踪的自适应传感器调度
-
Intel_ACPI_Low_Power_S0_Idle.pdf
-
sqlcipher数据库.zip
-
响应式编程入门与实战(Reactor、WebFlux、R2DBC)
-
基于历史数据相似度的风机动态状态预测方法
-
VS90SP1-KB976656-x86-VC2008.zip
-
经典的缓存过期策略
-
深度学习指南:在iOS平台上使用TensorFlow
-
dotNetFx40_Full离线和在线版安装包.rar
-
2月第3周小红书品牌机构创作者榜单
-
android开发入门!程序员怎样优雅度过35岁中年危机?安卓系列学习进阶视频
-
微信H5支付.zip
-
@Results用法总结
-
数据集的文字标签(label)转成数字标签
-
Jsplumb从入门到实战
-
android架构图!我三年开发经验,从字节跳动抖音离职后,内容太过真实
-
Mysql数据库面试直通车
-
永久居家办公之外,硅谷公司官宣955都不需要了