新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2021-12-18
- 在线时间
- 0 小时
|
1金钱
硬件上控制先不变,数据线由原来的D0~D15改成D0~D7
程序上:
GPIO去掉D8~D15的初始化
0x60020000改成0x60010000
#define FSMC_Addr_ILI9341_DATA ( ( uint32_t ) 0x60010000 )
fsmc结构体中选择8位宽度
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
写命令
__inline void ILI9341_Write_Cmd ( uint16_t usCmd )
{
* ( __IO uint16_t * ) ( FSMC_Addr_ILI9341_CMD ) = usCmd;
}
写数据
__inline void ILI9341_Write_Data ( uint16_t usData )
{
if(usData>0xFF)
{
* ( __IO uint8_t * ) ( FSMC_Addr_ILI9341_DATA ) = (usData>>8);
* ( __IO uint8_t * ) ( FSMC_Addr_ILI9341_DATA ) = usData;
}
else
{
* ( __IO uint8_t * ) ( FSMC_Addr_ILI9341_DATA ) = usData;
}
}
读数据
__inline uint16_t ILI9341_Read_Data ( void )
{
u16 a=0,b=0;
a=* ( __IO uint8_t * ) ( FSMC_Addr_ILI9341_DATA );
a=* ( __IO uint8_t * ) ( FSMC_Addr_ILI9341_DATA );
b=* ( __IO uint8_t * ) ( FSMC_Addr_ILI9341_DATA );
a=((a<<8)&b);
return a;
}
只改了这些地方,我现在想不出还需要改那些地方,请各路大神教一下,谢谢
|
|