本帖最后由 xuande 于 2016-6-24 15:22 编辑
平时8位MUC,汇编中一目了然在ram区定义变量,比如 data1 EQU 0x8fh,然后就可以对这个变量进操作,STM32中明白地址映射这回事,但不懂怎么操作的, 比如FSMC功能这块,当要驱动外部LCD时,列程用了相关地址映射 #define LCD_BASE ((u32)(0x6C000000 | 0x000007E)) //这个地址是0x6c00007e ,#define LCD ((LCD_TypeDef *) LCD_BASE) 这两个地址映射,后面又定义了一个LCD地址结构体typedef struct
{
vu16 LCD_REG;
vu16 LCD_RAM;
} LCD_TypeDef; //这个结构里面的两个对应地址偏移4 分别是 0x6c000083,0x6c000087吗? 这两个地址表示什么功能的寄存器?,最后在调用函数赋值的时候
void LCD_WriteReg(u16 LCD_Reg,u16 LCD_RegValue) //
{
LCD->LCD_REG = LCD_Reg;
LCD->LCD_RAM = LCD_RegValue;
}
LCD_WriteReg(0x0000,0x0001);
那么问题来了,这样一来0x0000,0x0001是不是否分别写到 0x6c000083,0x6c000087所对应的寄存器里面了吗?这个不清楚,还请哪位版友仔细解答一下,非常感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>