最近做一个dos平台上的串口通信(没学过微机原理,呵呵),但是发现中断号1-8都没有问题,用到中断11时,同样的代码跑不通,一端收不到数据。(程序是网上下载的通用的做得修改http://blog.sciencenet.cn/home.php?mod=space&uid=114642&do=blog&id=352331)
纠结了好久发现http://www.eku.cc/xzy/jxly/40386.htm这篇文章,很感谢写这篇论文的兄弟。
解决方案:
当串口需要发送数据时,只要将待发送的数据以字符串的形式依次写入基地址中即可。当接收数据时,由于每接收到一个字符便产生一个中断,因此要在中断服务子程序的最后向8259写入20H到地址20H即可,如果中断号大于8,还要向从片8259写入20H到地址A0H。
记录下来,备用。