
如果是在 *** 作系统中,你是不需要知道串口地址的。直接用设备名打开就可以。系统内的设备名可以用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插上后怎么查找所在的串口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)