
RS232串行通信接口硬件上有三个信号输入引脚:
CTS:这个信号源自对方(通常是DSE类型的设备,如调制解调器),告诉你DSE已经同意你发送数据
DSR:这个信号源自对方(通常是DSE类型的设备,如调制解调器),告诉你DSE已经准备就绪,可以工作了
CD:这个信号源自对方(通常是DSE类型的设备,如调制解调器),告诉你DSE已经侦测到载波(也就是数据调制波)
在net中,要读取这三个信号的状态,有两种方法:
(1)直接读取,代码如下
//读取CTSbool blnCTS = serialPort1CtsHolding;
//读取DSR
bool blnDSR = serialPort1DsrHolding;
//读取CD
bool blnCD = serialPort1CDHolding;
private void serialPort1_PinChanged(object sender, SystemIOPortsSerialPinChangedEventArgs e){
// 如果上面说的三个输入信号中,任意一个输入发生变化
// 都会引发PinChanged事件。因此,需要判断究竟是哪个
// 引脚信号变化引发此事件
bool b;
switch (eEventType)
{
case SystemIOPortsSerialPinChangeCDChanged:
b = serialPort1CDHolding;
break;
case SystemIOPortsSerialPinChangeCtsChanged:
b = serialPort1CtsHolding;
break;
case SystemIOPortsSerialPinChangeDsrChanged:
b = serialPort1DsrHolding;
break;
default:
break;
}
}
函数_write_com和_delay_ms在中断和主程序中都有调用,会导致混合调用。
英文写的很明白了,会上网就不会查英文单词吗还是不知道什么是混合调用。
比如你主程序调用_delay_ms做100ms延时,正在做循环延时,结果一个中断进来,中断处理程序也调用了_delay_ms,结果就是_delay_ms原有的数据冲掉,从头再来,这次执行是对的。等中断处理完,再执行走到一半的_delay_ms程序,因为数据被冲掉了,天知道是什么结果。
用的是PIC的C语言吧?不好好看书,PIC的C语言最不灵光的(之一)就是程序的混合调用。资源不够啊!
其它单片机看编译器,有的也会报错,有的会很聪明(比如KEIL)的知道要保护原始数据,在中断里帮你保护了。
1、检查串口是否正确,比如COM1,COM2,COM3等;
2、检查波特率是否正确,比如9600,115200等;
3、检查数据位、停止位、校验位是否正确,比如8位数据位、1位停止位、无校验位等;
4、检查串口线是否接好;
5、检查串口是否被其他程序占用,可以使用串口调试助手查看;
6、检查串口驱动是否安装正确,可以在设备管理器中查看;
7、检查程序代码是否正确,可以使用串口调试助手查看。
试试下列程序,这时用中断发送的。
#include<reg51h>
#define uchar unsigned char
uchar txt[] = "hello";
uchar i = 0;
void main(void)
{
PCON = 0X00;
SCON = 0X50;
TMOD = 0X20;
TH1 = 0XFD;
TL1 = 0XFD;
TR1 = 1;
EA = 1;
ES = 1;
TI = 1;
while(1) {
if(i == 6) {
i = 0;
TI = 1;
}
}
}
void uart() interrupt 4
{
if(RI == 1) RI = 0;
if(TI == 1) {SBUF = txt[i++]; TI = 0;}
}
本程序,可以用串口助手接收。收到的是:hellohellohellohellohello
try
{
//出现错误的代码段
}
catch(Exception e)
{
eMessage就是错误的描述
}
恢复通信方法可以加个定时器定时检查IsOpen状态
以上就是关于C# SerialPort类中SerialPinChange和PinChange的使用方法全部的内容,包括:C# SerialPort类中SerialPinChange和PinChange的使用方法、PIC单片机与PC机的串口通信程序出现下面的错误,这是什么错误啊错误原因可能是什么请单片机高手指点、vb.net串口类程序,串口打不开等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)