中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-24 20:33
47,812 主题排行 / 349,910 发帖 / 今日 1 篇 / 48,262 会员排行
站务公告 & 版主讨论 » [建议]强烈建议!
可打印版本  2,766 / 4
第1楼 sunny1979 发表于 2003-11-20 00:00
初级用户 发帖 86 积分 376
[建议]强烈建议!
编程区需要高手介入,好多问题至今还是问题,没有得到解答!
SOS:C里边的串口怎么定义,好象没人知道!
第2楼 如是大师 发表于 2003-11-21 00:00
元老会员 发帖 3,351 积分 9,654 来自 湖北
这一块我不太熟..不敢发言..
第3楼 sunny1979 发表于 2003-11-24 00:00
初级用户 发帖 86 积分 376
有谁帮我?
有谁帮我?
第4楼 GhostJ 发表于 2003-11-24 00:00
初级用户 发帖 16 积分 168
何為"串口"可以解釋一下嗎
第5楼 jddj007 发表于 2003-11-25 00:00
初级用户 发帖 11 积分 146
TC for DOS下控制串口
在Trubo C for DOS下要通过串口发送数据,就需要知道串口地址,然后才可以向该地址直接发送字符。
程序如下:
#include
#include
#include
#include
#include
#include
#include
typedef short SHORT;

#define WAITIME 30000
#define DBUF 0X0 /* DATA BUFFER REGISTER */
#define LSR 0x5 /* line status register */

static SHORT portaddress={0x3f8,0x2f8,0x3e8,0x2e8};
/* 串口地址 COM1 COM2 COM3 COM4 */
static SHORT portadd; /*串口号码*/

/*发送数据到指定地址*/
void Out_func( port, c )
SHORT port;
char c;
{
SHORT i = 0;

do
{
i++;
if (i == WAITIME) break;
}
while (!(inp(port+LSR) & 0x20)); /* 0x3ed */
/* wait until trans preparation */

if (i < WAITIME)
outp(port+DBUF,c);
}

/*把连续的字符串分解成单个字符发送*/
void Out_Array( num, str )
SHORT num;
char *str;
{
SHORT i;
char *p;

p = str;
for ( i = 0; i<num; i++, p++ )
Out_func( portadd, *p );
}

/*初始化串口*/
void light_init()
{
Out_func( portadd, 0x1b );
Out_func( portadd, 0x40 );

/*发送清屏命令*/
Out_func( portadd, 0x0c );
}


[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023