OpenEdv-开源电子网

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

把战舰版本的oled程序改成mini版本的程序,初始化不成功

[复制链接]

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2013-6-28
在线时间
0 小时
发表于 2013-10-23 14:30:53 | 显示全部楼层 |阅读模式
 

 原子哥,你好,我把战舰版本的oled程序改成mini版本的程序,改了如下的三个地方,初始化不成功,屏没反应,帮我看看是哪里还没有设置到,哪里导致的问题,谢谢。
编译是可以通过的,硬件也没有问题,因为我把你写的mini版本的程序下载进去,是没问题的,正常显示。

#define OLED_MODE 1
             
//-----------------OLED端口定义----------------         

#define OLED_CS_Clr()  GPIO_ResetBits(GPIOC,GPIO_Pin_9)
#define OLED_CS_Set()  GPIO_SetBits(GPIOC,GPIO_Pin_9)

#define OLED_RST_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_14)
#define OLED_RST_Set() GPIO_SetBits(GPIOB,GPIO_Pin_14)

#define OLED_RS_Clr() GPIO_ResetBits(GPIOC,GPIO_Pin_8)
#define OLED_RS_Set() GPIO_SetBits(GPIOC,GPIO_Pin_8)

#define OLED_WR_Clr() GPIO_ResetBits(GPIOC,GPIO_Pin_7)
#define OLED_WR_Set() GPIO_SetBits(GPIOC,GPIO_Pin_7)

#define OLED_RD_Clr() GPIO_ResetBits(GPIOC,GPIO_Pin_6)
#define OLED_RD_Set() GPIO_SetBits(GPIOC,GPIO_Pin_6)

//PC0~7,作为数据线
//#define DATAOUT(x) GPIO_Write(GPIOC,x);//输出
#define DATAOUT(DataValue) {GPIO_Write(GPIOB,(GPIO_ReadOutputData(GPIOB)&0xff00)|(DataValue&0x00FF));}  
//使用4线串行接口时使用

#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_0)
#define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_0)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_1)
#define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_1)       
#define OLED_CMD  0 //写命令
#define OLED_DATA 1 //写数据
以上是oled.h的改动,
void OLED_Init(void)
{  
  GPIO_InitTypeDef  GPIO_InitStructure; 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE);  //使能PC,D,G端口时钟
 #if OLED_MODE==1
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //JTAG-DP 失能 + SW-DP使能

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOB, &GPIO_InitStructure);           
 GPIO_Write(GPIOB,0XFFFF);

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOC, &GPIO_InitStructure);
 GPIO_SetBits(GPIOC, GPIO_Pin_6);
 GPIO_SetBits(GPIOC, GPIO_Pin_7);
 GPIO_SetBits(GPIOC, GPIO_Pin_8);
 GPIO_SetBits(GPIOC, GPIO_Pin_9);

 #else
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOB, &GPIO_InitStructure);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD ;    //推挽输出 
 GPIO_Init(GPIOB, &GPIO_InitStructure);         
 GPIO_Write(GPIOB,0X03);

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOC, &GPIO_InitStructure);
 GPIO_SetBits(GPIOC, GPIO_Pin_8);
 GPIO_SetBits(GPIOC, GPIO_Pin_9);
 #endif
以上是GPIO初始化的改动。
下面是main主函数
 int main(void)
 { u8 t;
 delay_init();       //延时函数初始化  
 NVIC_Configuration();   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  LED_Init();        //LED端口初始化
 OLED_Init();   //初始化OLED     
  OLED_ShowString(0,0, "0.96' OLED TEST"); 
  OLED_ShowString(0,16,"ATOM@ALIENTEK"); 
  OLED_ShowString(0,32,"2010/06/3"); 
  OLED_ShowString(0,48,"ASCII:"); 
  OLED_ShowString(63,48,"CODE:"); 
 OLED_Refresh_Gram(); 
 t=' '; 
 while(1)
 {  
  OLED_ShowChar(48,48,t,16,1);//显示ASCII字符   
  OLED_Refresh_Gram();
  t++;
  if(t>'~')t=' ';
  OLED_ShowNum(103,48,t,3,16);//显示ASCII字符的码值
  delay_ms(300);
  LED0=!LED0;
 }  
 
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-10-23 19:36:04 | 显示全部楼层
对比下战舰板子和MINI板子的IO口资源,可能有不一样的地方。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-23 21:19:42 | 显示全部楼层
建议楼主仿真对比下寄存器状态。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2013-6-20
在线时间
7 小时
发表于 2013-10-23 21:42:17 | 显示全部楼层
--回复【楼主位】虎逸云:
---------------------------------
http://www.openedv.com/posts/list/21330.htm 我改的用库函数实现迷你板的实验
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-10-24 09:11:26 | 显示全部楼层
回复【4楼】persist_2012:
---------------------------------
太感谢了,我也是一直在改战舰版做mini板的程序
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-10 09:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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