OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3469|回复: 3

GPIO->ODR问题

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-5-22
在线时间
4 小时
发表于 2016-5-22 19:00:27 | 显示全部楼层 |阅读模式
1金钱
在移植某液晶的时候用到8位并口,向ODR寄存器赋值,结果始终不对。
程序首先是对8位并口数据进行倒序,然后赋值给u16的data,对data左移8位,赋值给ODR,结果低8位居然不是0,ODR的值也是乱的
程序如下,各位大神求指点。。。
[mw_shl_code=c,true]void LCD_Write(GPIO_TypeDef* GPIOx, uint8_t PortVal)
{
        u8 temp=0;
        uint16_t data=0;

//8λÊý¾Ý½øÐе¹Ðò       
        temp=(PortVal^(PortVal>>1))&0x55;
        PortVal=PortVal^temp^(temp<<1);
       
        temp=(PortVal^(PortVal>>2))&0x33;
        PortVal=PortVal^temp^(temp<<2);
       
        temp=(PortVal^(PortVal>>4)&0x0f);
        PortVal=PortVal^temp^(temp<<4);
       
        data|=PortVal;
       
        GPIOx->CRH|=0x33333333;
        data<<=8;
        GPIOx->ODR=data;
}[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-5-22
在线时间
4 小时
 楼主| 发表于 2016-5-22 19:01:40 | 显示全部楼层
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-5-22 19:11:28 | 显示全部楼层
都知道问题在哪里,那就一行一行的检查修改,有什么困难?
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-5-22
在线时间
4 小时
 楼主| 发表于 2016-5-22 19:59:45 | 显示全部楼层
jinggx 发表于 2016-5-22 19:11
都知道问题在哪里,那就一行一行的检查修改,有什么困难?

我在VS上测试,到data为止数据都是对的,但是赋值到ODR就不对了,这是什么原因。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 21:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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