怎样获取串口地址

怎样获取串口地址,第1张

如果是在 *** 作系统中,你是不需要知道串口地址的。直接用设备名打开就可以。系统内的设备名可以用devs查看,一般是/tyCo/0和/tyCo/1

如果是在bootrom中,可以用BSP提供的函数,一般在sysSerialc中,sysChanGet(i)。设置中断或查询方式后然后输出

#include <stdioh>

#include <Windowsh>

int main(void)

{

FILE fp;

char temp;

char buf[100];

if((fp = fopen("com3","r")) == NULL)

puts("this way doesn't work!\n");

else

puts("this way works!\n");

while(1)

{

temp = 0;

fscanf(fp,"%c",&temp);

if(temp != 0)

putchar(temp);

else

Sleep(100);

}

fclose(fp);

return 0;

}

以前弄的,好久没看了,不知到对不对。

还有下面这段:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

#include <Windowsh>

#include <stdioh>

HANDLE hCom;

int main(void)

{

hCom=CreateFile(TEXT("COM3"),//COM1口

GENERIC_READ|GENERIC_WRITE, //允许读和写

0, //独占方式

NULL,

OPEN_EXISTING, //打开而不是创建

0, //同步方式

NULL);

if(hCom==(HANDLE)-1)

{

printf("打开COM失败!\n");

return FALSE;

}

else

{

printf("COM打开成功!\n");

}

SetupComm(hCom,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024

COMMTIMEOUTS TimeOuts;

//设定读超时

TimeOutsReadIntervalTimeout=1000;

TimeOutsReadTotalTimeoutMultiplier=500;

TimeOutsReadTotalTimeoutConstant=5000;

//设定写超时

TimeOutsWriteTotalTimeoutMultiplier=500;

TimeOutsWriteTotalTimeoutConstant=2000;

SetCommTimeouts(hCom,&TimeOuts); //设置超时

DCB dcb;

GetCommState(hCom,&dcb);

dcbBaudRate=9600; //波特率为9600

dcbByteSize=8; //每个字节有8位

dcbParity=NOPARITY; //无奇偶校验位

dcbStopBits=ONE5STOPBITS; //两个停止位

SetCommState(hCom,&dcb);

DWORD wCount;//读取的字节数

BOOL bReadStat;

while(1)

{

PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR); //清空缓冲区

char str[9]={0};

printf("%s\n",str);

bReadStat=ReadFile(hCom,str,9,&wCount,NULL);

if(!bReadStat)

{

printf("读串口失败!");

return FALSE;

}

else

{

str[8]='\0';

printf("%s\n",str);

}

Sleep(100);

}

}

以上两段代码是一年前弄的,我记得可以用,你试试。

问题者提问的问题本身具有相当的模糊性。USB插上后和串口有何关系?USB插上的什么,串口是什么?

我理解提问者可能是这个意思:usb转串口的转接线连接了一个单片机的某种东西,插上后在host端找到对应的串口和单片机通信。

据我所知,串口是没有像USB那样的插拔中断的。所以插上后host这端无法感知有设备插入。对于你的转接线,是插上后有一个串口在设备列表中出现。可以在设备管理器里看到,一般会在名字里提示是哪个串口如

COM3。

其实说起来这也不是缺陷,由于历史原因,串口是不支持热插拔的,老式主板接口热插拔串口还会导致主板损坏呢。如今,像昂贵的

max232

在某种程度上已经可以热插拔了。

如有多个com接口分辨不出是哪一个,那只能手动的一个一个打开试一试了。

以上就是关于怎样获取串口地址全部的内容,包括:怎样获取串口地址、怎样在WINDOWS下用C语言编写串口接收数据程序、c语言win7 USB插上后怎么查找所在的串口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10039526.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存