这是STM32的程序中的,谁能给我解释一下啊?C高手里面请!
#defineBank1_LCD_C((uint32_t)0x60000000)//输入:dbw数据位数,1为16位,0为8位。voidLCD_WR_CMD(unsign...
#define Bank1_LCD_C ((uint32_t)0x60000000)
//输入:dbw 数据位数,1为16位,0为8位。
void LCD_WR_CMD(unsigned int index,unsigned int val)
{
*(__IO uint16_t *) (Bank1_LCD_C)= index;
}
主要是 * (__IO uint16_t *) 和 ((uint32_t)0x60000000)看不懂, 展开
//输入:dbw 数据位数,1为16位,0为8位。
void LCD_WR_CMD(unsigned int index,unsigned int val)
{
*(__IO uint16_t *) (Bank1_LCD_C)= index;
}
主要是 * (__IO uint16_t *) 和 ((uint32_t)0x60000000)看不懂, 展开
2个回答
展开全部
uint32_t、uint16_t应该是定义的32位和16位数据类型,你找找宏定义应该能找到,*(__IO uint16_t *) (Bank1_LCD_C)意思是把Bank1_LCD_C转为uint16_t*型的指针,再把index赋给这个指针所指的地址,((uint32_t)0x60000000)就比较简单了,就是把数据0x60000000转换为uint32_t类型。至于_IO就是这个了:
#define __IO volatile /*!< defines 'read / write' permissions */
#define __IO volatile /*!< defines 'read / write' permissions */
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询