OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6410|回复: 10

实验12 OLED显示,为什么看不到SPI 时钟使能的函数 ?

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
发表于 2015-12-3 08:59:57 | 显示全部楼层 |阅读模式
5金钱
如题,在实验12 OLED显示例程中,OLED初始化函数中,只有GPIO 初始化的部化,为什么看不到SPI初始化如SPI时钟使能函数等函数,

//初始化SSSD1306    
void OLED_Init(void)
{  
  GPIO_InitTypeDef  GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE|RCC_AHB1Periph_GPIOG, ENABLE);//????PORTA~E,PORTG?±??
  
#if OLED_MODE==1 //使用8080 并口模式

//GPIO初始化设置
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//???¨????????
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//???ì????
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//????
  GPIO_Init(GPIOA, &GPIO_InitStructure);//??????

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7 ;
GPIO_Init(GPIOB, &GPIO_InitStructure);//??????

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_11;
GPIO_Init(GPIOC, &GPIO_InitStructure);//??????
  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_Init(GPIOD, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_5;
GPIO_Init(GPIOE, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOG, &GPIO_InitStructure);//??????
 

  OLED_WR=1;
OLED_RD=1; 
#else //使用4线SPI模式
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//???¨????????
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//???ì????
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//????
  GPIO_Init(GPIOB, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_Init(GPIOC, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOD, &GPIO_InitStructure);//??????

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOG, &GPIO_InitStructure);//??????

OLED_SDIN=1;
OLED_SCLK=1;
#endif
OLED_CS=1;
OLED_RS=1;  

OLED_RST=0;
delay_ms(100);
OLED_RST=1; 
 
OLED_WR_Byte(0xAE,OLED_CMD); //??±?????
OLED_WR_Byte(0xD5,OLED_CMD); //?è???±??·????ò×?,????????
OLED_WR_Byte(80,OLED_CMD);   //[3:0],·????ò×?;[7:4],????????
OLED_WR_Byte(0xA8,OLED_CMD); //?è???????·??
OLED_WR_Byte(0X3F,OLED_CMD); //????0X3F(1/64) 
OLED_WR_Byte(0xD3,OLED_CMD); //?è??????????
OLED_WR_Byte(0X00,OLED_CMD); //??????0

OLED_WR_Byte(0x40,OLED_CMD); //?è???????????? [5:0],????.
   
OLED_WR_Byte(0x8D,OLED_CMD); //????±??è??
OLED_WR_Byte(0x14,OLED_CMD); //bit2??????/??±?
OLED_WR_Byte(0x20,OLED_CMD); //?è?????????·????
OLED_WR_Byte(0x02,OLED_CMD); //[1:0],00???????·????;01???????·????;10,?????·????;????10;
OLED_WR_Byte(0xA1,OLED_CMD); //?????¨???è??,bit0:0,0->0;1,0->127;
OLED_WR_Byte(0xC0,OLED_CMD); //?è??COM?¨?è·??ò;bit3:0,???¨????;1,???¨?????? COM[N-1]->COM0;N:?????·??
OLED_WR_Byte(0xDA,OLED_CMD); //?è??COM????????????
OLED_WR_Byte(0x12,OLED_CMD); //[5:4]????
 
OLED_WR_Byte(0x81,OLED_CMD); //??±????è??
OLED_WR_Byte(0xEF,OLED_CMD); //1~255;????0X7F (?????è??,???ó????)
OLED_WR_Byte(0xD9,OLED_CMD); //?è???¤????????
OLED_WR_Byte(0xf1,OLED_CMD); //[3:0],PHASE 1;[7:4],PHASE 2;
OLED_WR_Byte(0xDB,OLED_CMD); //?è??VCOMH ????±???
OLED_WR_Byte(0x30,OLED_CMD); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;

OLED_WR_Byte(0xA4,OLED_CMD); //????????????;bit0:1,????;0,??±?;(°×??/????)
OLED_WR_Byte(0xA6,OLED_CMD); //?è??????·???;bit0:1,·??à????;0,????????       
OLED_WR_Byte(0xAF,OLED_CMD); //????????  
OLED_Clear();
}  


最佳答案

查看完整内容[请看2#楼]

其实是有SPI初始化的函数,已有看到。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
 楼主| 发表于 2015-12-3 08:59:58 | 显示全部楼层
其实是有SPI初始化的函数,已有看到。
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-12-3 09:57:20 | 显示全部楼层
因为使用的是8080时序,如果使用下面的SPI,如果是软件模拟的话只需要配置IO
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5757
金钱
5757
注册时间
2013-11-22
在线时间
1208 小时
发表于 2015-12-3 09:58:03 | 显示全部楼层
OLED_MODE==1  用的8080并口方式
OLED_MODE==0 用的是 模拟SPI   不是硬件SPI
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
 楼主| 发表于 2015-12-5 10:09:30 | 显示全部楼层
回复【3楼】lycreturn:
---------------------------------
我也觉得是模拟SPI ,但问题是,
我把下面这两个CLK,DIN改成别的port,就不行啦
#define SSD1306_CLK_PIN         GPIO_Pin_13
#define SSD1306_DIN_PIN         GPIO_Pin_15
#define SSD1306_CLK_GPIO        GPIOB
#define SSD1306_DIN_GPIO        GPIOB
回复

使用道具 举报

3

主题

2164

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5757
金钱
5757
注册时间
2013-11-22
在线时间
1208 小时
发表于 2015-12-5 10:15:39 | 显示全部楼层
回复【4楼】rick_liuh:
---------------------------------
看看是不是有的地方 还没改过来
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
 楼主| 发表于 2015-12-5 12:05:36 | 显示全部楼层
回复【5楼】lycreturn:
---------------------------------
确认过很多次了,弄了几天了,确定全部都改过来了
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10566
金钱
10566
注册时间
2014-6-12
在线时间
1022 小时
发表于 2015-12-5 12:43:01 | 显示全部楼层
回复【4楼】rick_liuh:
---------------------------------
你用的是什么板子?
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
 楼主| 发表于 2015-12-6 20:13:15 | 显示全部楼层
F407vet6最小系统
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
 楼主| 发表于 2015-12-6 20:13:31 | 显示全部楼层
回复【7楼】xuyaqi:
---------------------------------
F407vet6最小系统
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-12-3
在线时间
3 小时
 楼主| 发表于 2015-12-11 08:38:32 | 显示全部楼层
这个问题还是没有弄明白
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 18:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表