社区
嵌入开发(WinCE)
帖子详情
如果串口打开后,不对其执行关闭操作,会有什么后果呢?
xk2615@
2009-12-09 04:48:46
如果串口打开后,不对其执行关闭操作,会有什么后果呢?
...全文
656
15
打赏
收藏
如果串口打开后,不对其执行关闭操作,会有什么后果呢?
如果串口打开后,不对其执行关闭操作,会有什么后果呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xk2615@
2009-12-11
打赏
举报
回复
[Quote=引用 14 楼 feihu521a 的回复:]
break直接就跳出while循环了,contiue才是跳出本次循环。
[/Quote]
这个break好像只能跳出switch,跳不出while(1)
ilovedrv
2009-12-10
打赏
举报
回复
while(1){***}
里面有break或者goto否
yzbsd
2009-12-10
打赏
举报
回复
下次就打不开了
firehood
2009-12-10
打赏
举报
回复
[Quote=引用 5 楼 xh_jj 的回复:]
今天看到一个程序,是在一个子线程里面,
首先打开串口:fd=open_com(****);
紧接着是: if(fd <0){报错}
然后是: while(1){***}
之后是一个: if(close_com(***)=-1){报错}
我感觉最后那个关闭串口的操作是不是执行不到那里?前面是个死循环呢。
那如果程序由于某种原因重新启动,是不是会出现错误?
[/Quote]
if(close_com(***)=-1){报错} 这句话肯定执行不到啊,你可以在主线程关闭的时候终止这个子线程,并将串口端口关闭。
guopeixin
2009-12-10
打赏
举报
回复
[Quote=引用 5 楼 xh_jj 的回复:]
今天看到一个程序,是在一个子线程里面,
首先打开串口:fd=open_com(****);
紧接着是: if(fd <0){报错}
然后是: while(1){***}
之后是一个: if(close_com(***)=-1){报错}
我感觉最后那个关闭串口的操作是不是执行不到那里?前面是个死循环呢。
那如果程序由于某种原因重新启动,是不是会出现错误?
[/Quote]
没看懂
firehood
2009-12-10
打赏
举报
回复
[Quote=引用 10 楼 xh_jj 的回复:]
倒是有break,但我理解的是这也只能跳出本次循环,开始下一次while()的判断,不知对不对?
[/Quote]
break直接就跳出while循环了,contiue才是跳出本次循环。
wlc311
2009-12-10
打赏
举报
回复
那就被一个线程一直占用咯
MY_MCU
2009-12-10
打赏
举报
回复
下次再用找开命令时,会提示串口占用.不执行打开命令,则可直接收发数据.
happybeginner
2009-12-10
打赏
举报
回复
串口编程在kenrel的本质是文件系统层+串口芯片驱动层, 在kernel里面你可以看到其实所谓的open和close对应到串口芯片地驱动里面地代码只是把串口芯片地收发中断使能和关闭. 但是既然串口作为一个设备, 当然要遵从设备文件地基本属性, 看设备打开时用的参数. open后如果不关导致地后果你前面地写和后面地写会叠加输出. 前面的读和后面的读则会看输入数据进入串口接收buffer的时机.
xk2615@
2009-12-10
打赏
举报
回复
while()
{
nread=com_read(***);
if (nread>0)
{
switch(X)
{
case a:
****
break;
case b:
****
break;
default:
break;
}
}
}
if(close_com(***)=-1){报错}
//倒是有break,但我理解的是这也只能跳出本次循环,开始下一次while()的判断,不知对不对?
xk2615@
2009-12-09
打赏
举报
回复
今天看到一个程序,是在一个子线程里面,
首先打开串口:fd=open_com(****);
紧接着是: if(fd<0){报错}
然后是: while(1){***}
之后是一个: if(close_com(***)=-1){报错}
我感觉最后那个关闭串口的操作是不是执行不到那里?前面是个死循环呢。
那如果程序由于某种原因重新启动,是不是会出现错误?
tcdzyq
2009-12-09
打赏
举报
回复
如一二
宇帆
2009-12-09
打赏
举报
回复
下次打开 串口的时候 会提示被占用,以后可以直接对串口进行读写操作
firehood
2009-12-09
打赏
举报
回复
串口会一直被占用
rzsheng
2009-12-09
打赏
举报
回复
下次打不开
SPCOMM控件for Delphi
SPCOMM的主要属性,方法和事件 1.属性 CommName:填写COM1,COM2…等
串口
的名字,在
打开
串口
前,必须填写好此值。 BaudRate:设定波特率9600,4800等,根据实际需要来定,在
串口
打开
后也可更改波特率,实际波特率随之更改。 ParityCheck:奇偶校验。 ByteSize:字节长度_5,_6,_7,_8等,根据实际情况设定。 Parity:奇偶校验位 pBits:停止位 SendDataEmpty:这是一个布尔属性,为true时表示发送缓存为空,或者发送队列里没有信息;为False时表示表示发送缓存不为空,或者发送队列里有信息。 2.方法 Startcomm过程用于
打开
串口
,当
打开
失败时通常
会
报错,错误主要有7种: ⑴
串口
已经
打开
; ⑵
打开
串口
错误 ; ⑶文件句柄不是通讯句柄; ⑷不能够安装通讯缓存; ⑸不能产生事件 ; ⑹不能产生读进程; ⑺不能产生写进程; StopComm过程用于
关闭
串口
,没有返回值。 函数WriteCommData(pDataToWrite: PChar;dwSizeofDataToWrite:Word ): boolean 用于发送一个字符串到写线程,发送成功返回true,发送失败返回false,
执行
此函数将立即得到返回值,发送
操作
随后
执行
。函数有两个参数,其中 pdatatowrite是要发送的字符串,dwsizeofdatatowrite 是发送的长度。 3.事件 OnReceiveData : procedure (Sender: TObject;Buffer: Pointer;BufferLength: Word) of object 当输入缓存有数据时将触发该事件,在这里可以对从
串口
收到的数据进行处理。Buffer中是收到的数据,bufferlength是收到的数据长度。 OnReceiveError : procedure(Sender: TObject; EventMask : DWORD) 当接受数据时出现错误将触发该事件。
android
打开
串口
linuxc,C/C++
打开
串口
和
关闭
串口
通常使用下列函数来通过Win系统来对外围设备进行通信处理:0. 前言做
串口
方面的程序,使用CreateFile
打开
串口
通信端口。在对
串口
操作
之前,需要首先
打开
串口
。使用C++进行
串口
编程,如果采用VS开发,则可以直接借助于
串口
通信控件来
操作
,其次,直接调用Windows的底层API函数来控制
串口
通信。在Window 32bit 的
操作
系统上, 将
串口
(通信设备)作为文件来处理,所以
串口
的
打开
、
关闭
...
CSerialPort类
关闭
串口
后无法再次
打开
的一个错误问题
参考文章为我之前发的SerialPort类的编写: https://blog.csdn.net/vae20017/article/details/104045914 本人在写
串口
调试程序的时候,用CSerialPort类
打开
串口
后如果
关闭
,再次
打开
就无法
打开
该
串口
。利用GetlastError()发现错误代码是:5,也就是
串口
被占用。将程序全部退出再进入就可以
打开
占用
串口
,因此证明程序
关闭
串口
失败...
labview
串口
打开
之后visaclose不起作用
关闭
不了老是占用的问题
labview
串口
打开
之后visaclose不起作用
关闭
不了老是占用的问题 最近在做一个数据接收的上位机,用
串口
发送接收数据,之前有用过labview,整体
操作
相当简单,于是就打算用labview做一个。 但是之前做labview的时候就有一个问题,我的
串口
打开
之后,即使我用了visa close,但是还是
关闭
不了,只能强行
关闭
程序来释放
串口
。 导致我如果同时izai用这个
串口
下载单片机程序,每次调试的时候要改程序都要关软件,很麻烦。 像这样 但是我每次都是有用visaclose 去释放这个
串口
不过不
高级
串口
编程—C/C++
打开
串口
、
关闭
串口
和读
串口
函数
最近在做一个陀螺仪的原始数据读取遇到了
串口
数据读取问题,在网上查阅了一篇技术文档,觉得写的不错,分享一下! 1.1前言 通常使用以下函数来通过Windows系统来对外围设备进行通信,做
串口
方面的程序,使用CreatFile
打开
串口
通信端口。在对
串口
进行
操作
之前,需要首先
打开
串口
。使用C++进行
串口
编程,如果采用VS开发,则可以直接借助于
串口
通信控件来
操作
,其次,也可以直接调用W...
嵌入开发(WinCE)
19,502
社区成员
41,568
社区内容
发帖
与我相关
我的任务
嵌入开发(WinCE)
硬件/嵌入开发 嵌入开发(WinCE)
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章