新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2016-4-23
- 在线时间
- 6 小时
|
1金钱
void SPI1_Init(void)
{
RCC->APB2ENR|=(1<<2|1<<12|1<<0); //IO端口A时钟使能,SPI1时钟使能;
GPIOA->CRL&=0x0f0fffff;
GPIOA->CRL|=0xb0b00000; // PA5 PA7复用推挽输出;
SPI1->CR1=0x423e; //单线只发模式
//SPI1->CR1=1<<6; //使能SPI1
}
void SPI1_WriteByte(u8 wdate)
{
SPI1->CR1=1<<6; //使能SPI1
while(((SPI1->SR&0x0002)==0)|(SPI1->SR&0x80)) ; //发送缓冲非空,等待
SPI1->DR=wdate;
while(((SPI1->SR&0x0002)==0)|(SPI1->SR&0x80)) ; //发送缓冲非空,等待
}
这是我配置的SPI1,想驱动NOKIA5110 LCD。可是为什么没反应?跪求大神解释一下。
/*这个是函数应该没错,我个人觉得
void LCD_write_byte(unsigned char data, unsigned char command)
{
CE_Reset; //使能LCD
if(command ==0)
DC_Reset;
else
DC_Set;
SPI1_WriteByte(data);
CE_Set;
}
*/
|
|