尝试从COMn读取数据:使用FreeBasic的端口。该设备是一个带有ARM控制器的TouchScreen,它通过FTDI芯片将串行数据按9600,N,8,1打孔连接到PC机上。我正在测试的这个主板在BIOS上有本机COM1,由于某种原因,Windows阻止了COM2,3,4,5,6,8,9,10.在将此设备连接到主板上时,它会枚举USB并在设备管理器上分配COM7:。当触摸屏上的红外矩阵中断时,Putty程序可以很好地将其读取为COM7,并将传入的数据显示为AxxxyyyZ,其中xxx和yyy为坐标1~600和1~800,Z在中断时为"B“,在提升时为"N”,在拖动时为"C“,而初始的"A”只是同步。
在FreeBasic中编写代码非常容易,可以画出触摸的圆圈,并在拖动时画行,对吗?是的,除了FreeBasic不能阅读COM7:在这个世界上没有任何东西。它打开时,打开的“COM7 7:n,8,1”作为1没有错误,但是无法从读取数据。
我怀疑FreeBasic与COMn有一些问题:当"n“高于某一值时。所以我真的销毁了设备管理器上的COM2,在几次重新启动之后,我可以在设备管理器上看到COM2空闲,并将2分配给这个FTDI连接,而voilá,工作。
我不知道,这可能是另外一回事,但作为COM2,它起作用了。我在FreeBasic上找不到关于COMn值的一些局限性的文献.有人知道些什么吗?
发布于 2022-03-01 19:59:19
在FreeBASIC中使用串口的正确方法如下所示
OPEN COM "COM7:9600,N,8,1,dt" AS 1 主要参数是一个字符串,它至少描述要打开哪个通信端口。它的格式如下:
[ data_bits,stop_bits,extended_options ]]
在哪里,就可以打开港口。"1“、"2”、"3“、"4”等。一些平台将支持更多的串口,这取决于操作系统的配置方式。如果不给n,则"COM:“将映射到"COM1:",但在Linux上,"COM:”映射到"/dev/modem“300(默认值)、"1200”、.等奇偶"N“(无)、"E”(偶数、默认值)、"O“(奇数)、"S”(空格)、"M“(标记)、"PE”(QB-古怪: checked,偶数奇偶校验) data_bits "5“、"6","7“(缺省)或"8”。stop_bits "1“、"1.5”或"2“。
https://stackoverflow.com/questions/70979041
复制相似问题