在线时间3 小时
UID125646
注册时间2007-6-7
NXP金币0
该用户从未签到
注册会员

- 积分
- 56
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-11-25 11:57:51
|
显示全部楼层
本帖最后由 mcu8031 于 2014-11-25 11:59 编辑
对引脚的初始化代码如下:
void CLcd::Create(void)
{
//初始化LCD引脚
//控制引脚
//CS
LCD_CS_PORT-> CR[LCD_CS_PIN].Data = 0;
LCD_CS_PORT-> CR[LCD_CS_PIN].Bits.MUX = System: ort: ortPinAsAlt5;
LCD_CS_PORT-> CR[LCD_CS_PIN].Bits.DSE = System: ort::HIGH_DRIVE_STRENGTH;
//RS
LCD_RS_PORT-> CR[LCD_RS_PIN].Data = 0;
LCD_RS_PORT-> CR[LCD_RS_PIN].Bits.MUX = System: ort: ortPinAsAlt6;
LCD_RS_PORT-> CR[LCD_RS_PIN].Bits.DSE = System: ort::HIGH_DRIVE_STRENGTH;
//WR
LCD_WR_PORT-> CR[LCD_WR_PIN].Data = 0;
LCD_WR_PORT-> CR[LCD_WR_PIN].Bits.MUX = System: ort: ortPinAsAlt5;
LCD_WR_PORT-> CR[LCD_WR_PIN].Bits.DSE = System: ort::HIGH_DRIVE_STRENGTH;
//OE
LCD_OE_PORT-> CR[LCD_OE_PIN].Data = 0;
LCD_OE_PORT->PCR[LCD_OE_PIN].Bits.MUX = System: ort::PortPinAsAlt5;
LCD_OE_PORT->PCR[LCD_OE_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//RESET
LCD_RESET_PORT->PCR[LCD_RESET_PIN].Data = 0;
LCD_RESET_PORT->PCR[LCD_RESET_PIN].Bits.MUX = System::Port::PortPinAsGPIO;
LCD_RESET_PORT->PCR[LCD_RESET_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
LCD_RESET_GPIO->PDDR.Data |= (0x01 << LCD_RESET_PIN); //输出模式
LCD_RESET_GPIO->PSOR.Data &= ~(0x01 << LCD_RESET_PIN);//输出低电平
_delayms(100);
LCD_RESET_GPIO->PSOR.Data |= (0x01 << LCD_RESET_PIN);//输出高电平
//BL
LCD_BL_PORT->PCR[LCD_BL_PIN].Data = 0;
LCD_BL_PORT->PCR[LCD_BL_PIN].Bits.MUX = System::Port::PortPinAsGPIO;
LCD_BL_PORT->PCR[LCD_BL_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
LCD_BL_GPIO->PDDR.Data |= (0x01 << LCD_BL_PIN);
LCD_BL_GPIO->PSOR.Data |= (0x01 << LCD_BL_PIN);
//数据引脚
//D0
LCD_D0_PORT->PCR[LCD_D0_PIN].Data = 0;
LCD_D0_PORT->PCR[LCD_D0_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D0_PORT->PCR[LCD_D0_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D1
LCD_D1_PORT->PCR[LCD_D1_PIN].Data = 0;
LCD_D1_PORT->PCR[LCD_D1_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D1_PORT->PCR[LCD_D1_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D2
LCD_D2_PORT->PCR[LCD_D2_PIN].Data = 0;
LCD_D2_PORT->PCR[LCD_D2_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D2_PORT->PCR[LCD_D2_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D3
LCD_D3_PORT->PCR[LCD_D3_PIN].Data = 0;
LCD_D3_PORT->PCR[LCD_D3_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D3_PORT->PCR[LCD_D3_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D4
LCD_D4_PORT->PCR[LCD_D4_PIN].Data = 0;
LCD_D4_PORT->PCR[LCD_D4_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D4_PORT->PCR[LCD_D4_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D5
LCD_D5_PORT->PCR[LCD_D5_PIN].Data = 0;
LCD_D5_PORT->PCR[LCD_D5_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D5_PORT->PCR[LCD_D5_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D6
LCD_D6_PORT->PCR[LCD_D6_PIN].Data = 0;
LCD_D6_PORT->PCR[LCD_D6_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D6_PORT->PCR[LCD_D6_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//D7
LCD_D7_PORT->PCR[LCD_D7_PIN].Data = 0;
LCD_D7_PORT->PCR[LCD_D7_PIN].Bits.MUX = System::Port::PortPinAsAlt5;
LCD_D7_PORT->PCR[LCD_D7_PIN].Bits.DSE = System::Port::HIGH_DRIVE_STRENGTH;
//设置安全等级
CSim::FlexBusSecurityLevel(System::Sim::SIM_FB_SECURITY_LEVEL_3);
//开启时钟
CSim::FlexBusClockEnable(System::True);
//设置FlexBus时钟分频
CSim::FlexBusClockDivider(System::Sim::SIM_CLOCK_DIVIDER_1);
//必须使能片选0的有效标记
//CFlexBus::SpaceValid(System::FlexBus::FLEXBUS_CS0,System::True);
CFlexBus::SpaceValid(System::FlexBus::FLEXBUS_CS0,System::True);
//设置基地址
CFlexBus::BaseAddress(System::FlexBus::FLEXBUS_CS0,LCD_ADDRESS_BASE);
//设置有效空间
CFlexBus::SpaceSize(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_SPACESIZE_64K);
//设置端口宽度
CFlexBus::PortSize(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_PORTSIZE_8BITS);
//使能自动应答
CFlexBus::AutoAcknowledgeEnable(System::FlexBus::FLEXBUS_CS0,System::True);
//设置数据对齐方式 左对齐
CFlexBus: ataAlignedMode(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_DATA_ALIGNED_LEFT);
//设置字节使能模式
CFlexBus::ByteEnableMode(System::FlexBus::FLEXBUS_CS0,System::FlexBus::FLEXBUS_BYTE_ENABLE_READ_WRITE);
//设置等待周期
CFlexBus::WaitStates(System::FlexBus::FLEXBUS_CS0,2);
//设置引脚复用
//CFlexBus::PortMultiplexing(System::FlexBus::FLEXBUS_MULTIPLEXING_CS1);
//CFlexBus::PortMultiplexing(System::FlexBus::FLEXBUS_MULTIPLEXING_BE_23_16);
CFlexBus::PortMultiplexing(System::FlexBus::FLEXBUS_MULTIPLEXING_BE_31_24);
//有效片选
CFlexBus::SpaceValid(System::FlexBus::FLEXBUS_CS0,System::True);
//this->Init();
} |
|