天嵌 ARM开发社区

 找回密码
 注册
查看: 2757|回复: 3

关于16C554外扩串口驱动问题

[复制链接]
zhjun822 发表于 2013-3-21 20:57:27 | 显示全部楼层 |阅读模式
大家好!
      有做过外扩串口的没,我现在碰到了一个比较奇怪的问题,在S3C6410(wince6.0)下移植16C554的驱动,驱动已经移植好,能够正常进行收发,但是每次接收时芯片不能产生中断(中断管脚一直为低),只有进行一次发送,才能接收到上次未接收的数据。库是直接使用wince下的com16550.dll,各位大侠有遇到相似问题的吗,或知道是什么地方出了问题,望指教一二,谢谢了!!
亚瑟王 发表于 2013-3-22 09:03:30 | 显示全部楼层
亲,建议你先看一下芯片手册,然后对比着芯片手册看驱动对16c554的初始化是否遗漏了中断部分的恢复。
如果解决了希望将方法上传。
 楼主| zhjun822 发表于 2013-3-22 11:55:31 | 显示全部楼层
亚瑟王 发表于 2013-3-22 09:03
亲,建议你先看一下芯片手册,然后对比着芯片手册看驱动对16c554的初始化是否遗漏了中断部分的恢复。
如果 ...

感觉不像是寄存器设置的问题。
第一、ST16C554是兼容16C550的,通过打印接收、发送后寄存器的值也没有问题;
第二、今天早上我做了个实验,在接收之后直接再向数据寄存器写一个数据,其它配置寄存器并未改变,这样就能连续接收。
第三、我在接收后读取各个寄存器的值,然后向数据寄存器写值,然后再读取各个寄存器的值,寄存器值前后相同。但就是因为多向数据寄存器写了次值(发送一次数据),就可以接收了。
亚瑟王 发表于 2013-3-22 12:18:49 | 显示全部楼层
zhjun822 发表于 2013-3-22 11:55
感觉不像是寄存器设置的问题。
第一、ST16C554是兼容16C550的,通过打印接收、发送后寄存器的值也没有问 ...

我倾向于驱动部分的问题,也就是没有清空中断源引起的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-19 10:57 , Processed in 1.046882 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表