新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2015-4-3
- 在线时间
- 0 小时
|
5金钱
我刚入门stm32,看FSMC的例子这些代码怎么都看不懂,对照寄存器列表来看也觉得不对劲,希望有大神帮我详细解说一下,谢谢啦!
这是函数的定义:
void LCD_WR_REG(unsigned char index)
{
*(__IO uint8_t *) (Bank1_LCD_C)= index;
}
void LCD_WR_CMD(unsigned char dbw,unsigned char index,unsigned int val)
{
*(__IO uint8_t *) (Bank1_LCD_C)= index;
if(dbw)*(__IO uint8_t *) (Bank1_LCD_D)= (unsigned char) (val>>8);
*(__IO uint8_t *) (Bank1_LCD_D)= (unsigned char) (val);
}
unsigned int LCD_RD_data(void){
unsigned int a=0;
a=(*(__IO uint8_t *) (Bank1_LCD_D)); //Dummy
a= *(__IO uint8_t *) (Bank1_LCD_D); //H
a=a<<8;
a=a+(*(__IO uint8_t *) (Bank1_LCD_D)); //L
return(a);
}
void LCD_WR_Data(unsigned int val)
{
*(__IO uint8_t *) (Bank1_LCD_D)= (uint8_t) (val>>8);
*(__IO uint8_t *) (Bank1_LCD_D)= (uint8_t) (val);
}
void LCD_WR_Data_8(unsigned char val)
{
*(__IO uint8_t *) (Bank1_LCD_D)= val;
}
LCD初始化里,有这些代码:
LCD_WR_REG(0xA1); 这个是什么意思,选择寄存器A1吗?
LCD_WR_CMD(0,0x70,0xC8);这个是选择寄存器70吗?那个0xC8是什么含义,换成二进制码对照寄存器定义表看么?11001000?
//GAMMA设置
LCD_WR_CMD(1,0x30,0x0777);这个0x0777是什么意思?换成二进制吗????
|
|