请各位大侠看一下这个GPIO的实现问题

elite408 2008-11-22 09:25:00
各位大侠:
我的问题是这样的:我用GPB0,GPB1,GPB9分别接上一块LCD的控制引脚CS,SID,SCLK,其中在51单片机中发送数据的函数部分语句如下
{
i_data=0xf8;
CS=1; //我用s2440IOP->rGPBDAT=s2440IOP->rGPBDAT|(0x1<<0);代替
SCLK=0; //我用s2440IOP->rGPBDAT=s2440IOP->rGPBDAT&~(0x1<<9);代替

for(i=0;i<8;i++) // 但是下面的问题来了,这个如何将8位数据按位写入SID也就是GPB1呢,进行移位操作写的话,如果还是按照上面的方法如
{
SID=(bit)(i_data&0x80); // s2440IOP->rGPBDAT=s2440IOP->rGPBDAT|(0x1<<1)的话,会再次的对CS,SCLK,也就是GPB0,GPB9写入值,这样的话
SCLK=0; // 显示就错误了,所以我想请问的是:在操作GPIO口时,是否有单独操作其中一位的函数或者命令(像51中的bit),或者有
SCLK=1; // 其他好的解决方法,谢谢大家......
i_data=i_data<<1;
}
.....
.....
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gooogleman 2008-11-23
  • 打赏
  • 举报
回复
你可以使用个变量来保存IO的值

可以的
估计你想实现GPIO 模拟IIC程序吧。

我现在也遇到一些难题,要测试才知道问题出现在哪里。

使用点灯程序或者示波器,KITL设置断点,一步一步来。
beyondma 2008-11-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gooogleman 的回复:]
你可以使用个变量来保存IO的值
[/Quote]这个方法最简单可行。
sunrain_hjb 2008-11-22
  • 打赏
  • 举报
回复
实在没办法,将SID用另外的GPIO来控制。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧