一直因为没有买原子的开发板而遗憾,因为已经买了白菜的板,不过一直在看着原子的教程用白菜的板学习,(呵呵,有点对不住!)听说原子在准备新的开发板,到时一定要入手一块。在调试TFT的字库的时候,老是显示不了字库SST25VF080B里面的汉字,怀疑是SPI1的初始化不对,但是不知错在哪里,麻烦板主指点一下
下面的我初始化代码:
void FLASH_SPI_Config(void)
{
/* SCK, MISO and MOSI A5=CLK,A6=MISO,A7=MOSI*/
// RCC->APB2ENR|=1<<2; // PORTA时钟
RCC->APB2ENR|=1<<4; // PORTC时钟
RCC->APB2ENR|=1<<12; //打开SPI1时钟
RCC->APB2ENR|=1<<0; //打开复用功能时钟
GPIOA->CRL&=0X000FFFFF;
GPIOA->CRL|=0XBBB00000; //PA5,6,7复用推挽输出
// GPIOA->ODR|=7<<5; //PA5,6,7输出高电平
GPIOC->CRH&=0XFF0FFFFF;
GPIOC->CRH|=0X00300000; //PORTC13推挽输出 ,做为片选使用
GPIOC->ODR|=1<<13; //PORTC13=1;
/* SPI1 configuration 注意25系列的沿操作*/
SPI1->CR1&=~(1<<6); //关闭SPI1 看手册486页
SPI1->CR1&=~(1<<3);
SPI1->CR1&=~(1<<4);
SPI1->CR1&=~(1<<5); //3,4,5位置0;2分频
SPI1->CR1&=~(1<<1); //CPOL=0 时钟空闲时为低
SPI1->CR1&=~(1<<0); //CPHA=0 数据从第1个时钟边沿开始
SPI1->CR1&=~(1<<11); //8位数据格式
SPI1->CR1&=~(1<<7); //高位在前
SPI1->CR1&=~(1<<10);
SPI1->CR1&=~(1<<15); //两线全双工,
SPI1->CR1|=1<<2; //主模式
SPI1->CR1|=1<<9; //启用软件从设备管理
SPI1->CRCPR=7;
SPI1->CR1|=1<<6; //打开SPI1
}
|