该讨论已经结贴:对话内容已删除! 感谢楼下各位兄弟的讨论和回帖!
这是关于C8051F单片机的IO口输入输出的问题,虽然看起来很简单,但实际上还是有一些小细节,设计时仍要注意。
结论: 1)如果采用推挽输出,则getio的结果总会是setio的值,不能如实反应外部实际状态。 2)如果采用内部弱上拉的开漏输出,则getio前,必须进行setio将端口锁存器置1,或者保证之前setio已经置为了1状态。 所以最好还是需要一个设置输入输出方向的函数控制。
------------------------ 这两天跟一个客户讨论单片机的IO口输入输出问题。 (我开发的一款产品,客户邮件咨询。) 我的解释他总认为不对,大家帮我看看。 我都快晕死了! 大家帮我看看,难道我是真的错了吗?或者我该如何向对方解释? 注:是通过PC软件控制单片机的IO口 setio函数给IO口赋值,输出操作。 getio函数获取IO状态。
附:MCU驱动能力图和内部IO结构图
|