3F8和2E8是I/O端口地址。正确设置步骤如下:
1、主板的串行端口1默认值:3F8 / IRQ4自动:由BIOS自动设置。 3F8 / IRQ4指定串行端口1为COM1,并使用中断4,I / Q端口地址为3F8; 禁用:关闭主板上的串行端口1。 选项:2F8 / IRQ3; 3E8 / IRQ42E8 / IRQ3。
2、主板的串行端口2默认值为:2F8 / IRQ3地址为2F8,中断为3; 自动:由BIOS自动设置:禁用:关闭主板上的串行端口2。 选择与上面相同。
3、内置并行接口的默认值:378 / IRQ7中断7,I / O地址为378; 禁用:关闭主板上的并口; 3BC / IRQ7,使用主板上的并行端口并指定中断7,I / Q地址为3BC; 278 / IRQ。
扩展资料:
CPU通过接口控制外部设备的方式有:
1、程序查询方式
这样,CPU通过I / O指令查询指定外设的当前状态。如果外围设备已准备就绪,则将输入或输出数据,否则CPU将等待并循环查询。
这种方法的优点是结构简单,只需要少量的硬件电路。缺点是,由于CPU的速度远远高于外围设备,因此通常处于等待状态,工作效率非常低。
2、中断处理
这样,CPU不再被动地等待,而是可以执行其他程序。一旦外围设备准备好进行数据交换,它就可以向CPU提交服务请求。如果CPU响应该请求,它将暂时停止当前程序的执行。要执行与请求相对应的服务程序,请在完成后继续执行最初中断的程序。
中断处理方法的优点很明显。 它不仅节省了CPU查询外围设备状态并等待外围设备准备就绪所需的时间,提高了CPU的工作效率,还满足了外围设备的实时性要求。
把GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE)
换成
AFIO->MAPR&=~AFIO_MAPR_USART3_REMAP_NOREMAP
AFIO->MAPR|=AFIO_MAPR_USART3_REMAP_PARTIALREMAP
再试试?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)