OpenEdv-开源电子网

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

原子用库控制TFT液晶读数据,对其中几句有不明之处,请指教

[复制链接]

9

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2012-3-19
在线时间
37 小时
发表于 2012-5-1 21:35:09 | 显示全部楼层 |阅读模式
uint16_t LCD_ReadReg(u8 LCD_Reg)
{   
    uint16_t readdata;
    LCD_WR_REG(LCD_Reg);   //写入要读的寄存器号  

    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = LCD_GPIO_DATA_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;    // 上拉输入
    //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(LCD_GPIO_DATA_PORT, &GPIO_InitStructure);
    
    Write_Data(0x0000);
    Set_Rs;
    Clr_Cs;
    //读取数据(读寄存器时,并不需要读2次)
    Clr_nRd;   
    Set_nRd;
    
    readdata = GPIO_ReadInputData(GPIOB);   //这句有问题  

    //assert_param(IS_GPIO_ALL_PERIPH(GPIOB));
    //readdata = ((uint16_t)GPIOB->IDR);              //这句可以
    
    
    Set_Cs;   
    

    GPIO_InitStructure.GPIO_Pin = LCD_GPIO_DATA_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(LCD_GPIO_DATA_PORT, &GPIO_InitStructure);
    Write_Data(0xffff);
    return readdata;  
}  

为什么用如下语句

    readdata = GPIO_ReadInputData(GPIOB);   //这句有问题  
就不正常了。

用如下方式却可以?

    //assert_param(IS_GPIO_ALL_PERIPH(GPIOB));
    //readdata = ((uint16_t)GPIOB->IDR);              //这句可以


库函数里面 GPIO_ReadInputData(GPIO_TypeDef* GPIOx)原型如下:
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
{
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  
  return ((uint16_t)GPIOx->IDR);
}
也是用到   //assert_param(IS_GPIO_ALL_PERIPH(GPIOB));
             //readdata = ((uint16_t)GPIOB->IDR);              
2句语句的啊!



    


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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-5-1 23:28:36 | 显示全部楼层
这个我也不知道了,呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
287
金钱
287
注册时间
2012-3-19
在线时间
37 小时
 楼主| 发表于 2012-7-14 17:01:03 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
问题解决了
今天无聊又调节了一下此语句发现优化等价选择中级、高级都能够使用
主要还是需要IAR配置优化(common subexpression elimination),否则显示有问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 12:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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