打开:
int open_com(char *com, int speed)
{
int com_handle;
if (com == NULL)
{
return invalid_handle;
}
com_handle = open(com, O_RDWR | O_NOCTTY | O_NDELAY);
if (com_handle == invalid_handle)
{
return invalid_handle;
}
fcntl(com_handle, F_SETFL, 0);
if (set_com_speed(com_handle, speed) == false)
{
close(com_handle);
return invalid_handle;
}
return com_handle;
}
关闭、读写直接调用close(com_handle), read(com_handle,...), write(com_handle, ...)就可以了
方法一:用api,
1,用ioperm获得权限(不能用ioperm获得权限的端口地址用iopl)
2,用inb(),inb_p(),outb(),outb_p(),inw()....这些进行读写操作。
3,用ioperm释放权限。
方法二,用设备文件:
1,用open打开/dev/port
2,lseek到制定位置。
3,读写。
4,关闭。