OpenEdv-开源电子网

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

LED驱动读不出来帮我下看

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-9-8
在线时间
0 小时
发表于 2013-9-8 17:26:18 | 显示全部楼层 |阅读模式

void LCD_init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

    //p10:BL(背光)  p9:CS(片选)  p8:RS(0=读写 1=写)  p7:WR(写)  p6:RD(读)
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6;    //GPIO_Pin_10
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure); //GPIOC
    GPIO_SetBits(GPIOC,GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6);

    //数据脚LCD0-LCD15
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_Init(GPIOB, &GPIO_InitStructure); //GPIOB
    GPIO_SetBits(GPIOB,GPIO_Pin_All);

    Systick_ms(50); // delay 50 ms
    LCD_WriteReg(0x0000,0x0001);
    Systick_ms(50); // delay 50 ms
    LCD_DeviceCode = LCD_ReadReg(0x0000);
    while(1);
}

void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{
    LCD_RS_CLR;   //读写
    LCD_CS_CLR;         //取消片选
    DATAOUT(LCD_Reg); //数据输出
    LCD_WR_CLR;
    LCD_WR_SET;         //写数据
    LCD_CS_SET;
    LCD_WR_DATA(LCD_RegValue);
}

u16 LCD_ReadReg(u8 LCD_Reg)
{
    LCD_RS_CLR;   //读写
    LCD_CS_CLR;         //取消片选
    DATAOUT(LCD_Reg); //数据输出
    LCD_WR_CLR;
    LCD_WR_SET;         //写数据
    LCD_CS_SET;
    return LCD_RD_DATA();
}

u16 LCD_RD_DATA(void)
{
    u16 t;
    GPIOB->CRL=0X88888888; //PB0-7  上拉输入
    GPIOB->CRH=0X88888888; //PB8-15 上拉输入
    GPIOB->ODR=0X0000;     //全部输出0

    LCD_RS_SET;
    LCD_CS_CLR;
    //读取数据(读寄存器时,并不需要读2次)
    LCD_RD_CLR;
    LCD_RD_SET;
    t=DATAIN;
    LCD_CS_SET;

    GPIOB->CRL=0X33333333; //PB0-7  上拉输出
    GPIOB->CRH=0X33333333; //PB8-15 上拉输出
    GPIOB->ODR=0XFFFF;    //全部输出高
    return t;
}

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

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-9-8
在线时间
0 小时
 楼主| 发表于 2013-9-8 21:15:37 | 显示全部楼层
单步调试 LCD_DeviceCode变量为0 读取失败 有人知道哪里写错了吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-8 21:25:36 | 显示全部楼层
回复【2楼】zhihuo:
---------------------------------
数据脚LCD0-LCD15
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_Init(GPIOB, &GPIO_InitStructure); //GPIOB
    GPIO_SetBits(GPIOB,GPIO_Pin_All);
少了模式修改,要改为输入模式。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-13 07:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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