为什么我的三线SPI 会不显示呢,代码如下
void OLED_WR_Byte(u8 dat,u8 cmd)
{
u8 i = 0;
OLED_CS=0;
OLED_SCLK=0;
if(cmd == OLED_CMD)
OLED_SDIN=0;
else
OLED_SDIN=1;
OLED_SCLK=1;
for(i=0;i<8;i++)
{
OLED_SCLK=0;
if(dat&0x80)OLED_SDIN=1;
else OLED_SDIN=0;
OLED_SCLK=1;
dat<<=1;
}
OLED_CS=1;
}
//GPIO初始化
GPIO_InitTypeDef GPIO_InitStructure;
//SPI_InitTypeDef SPI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE );//PORTBê±Öóê1Äü
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE );//SPI2ê±Öóê1Äü
//SPI_SSOutputCmd(SPI2,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //PB13/14/15¸′óÃíÆíìêä3ö
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//3õê¼»ˉGPIOB
GPIO_SetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_15);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//Ƭѡ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);//3õê¼»ˉGPIOB
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);//3õê¼»ˉGPIOB
GPIO_SetBits(GPIOB,GPIO_Pin_3);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
原理图
不应该有错啊,按照原子的教程来写的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>