二叔花一天写的OLED上的小视频,听说都叫它bad apple^^

[table=98%]
[tr][td]OLED就先玩这么多吧,视频效果蛮流畅的,先上代码,后附视频

#include <wiringPi.h>
#include <wiringPiSPI.h>
#include <stdio.h>  
#include <stdlib.h>  
#include <stdint.h>
#include <string.h>
#include <time.h>
 
unsigned char initcode] = {
   0xAE, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0xA1, 0xC8,
   0xA6, 0xD5, 0x80, 0xDA, 0x12, 0x81, 0x00, 0xB0,
   0xA4, 0xDB, 0x40, 0x20, 0x00, 0x00, 0x10, 0x8D,
   0x14, 0x2E, 0xA6, 0xAF 
};
 
unsigned char poscode] = {
   0x20, 0x00, 0xB0, 0x00, 0x10
};
 
#define BUFFER_SIZE 1024
unsigned char buffer[BUFFER_SIZE];
 
void oled_begin();
void oled_test();
 
int main(void)
{
   time_t now;
   struct tm *timenow;
 
   wiringPiSetup();
 
   oled_begin();
 
   time(&now);   
   timenow = localtime(&now);    
   printf("Start time is %s/n",asctime(timenow));  
 
   oled_test();
 
   time(&now);   
   timenow = localtime(&now);    
   printf("End time is %s/n",asctime(timenow));  
 
   return 0;
}
 
void oled_begin()
{                
   pinMode (5, OUTPUT) ;
   pinMode (6, OUTPUT) ;
   wiringPiSPISetup(0, 32*1000*1000);
   digitalWrite(6,  LOW) ;
   delay(50);
   digitalWrite(6,  HIGH) ;
   digitalWrite(5, LOW);
   wiringPiSPIDataRW(0, initcode, 28);
}
 
void oled_test()
{ 
   int r;
   FILE *fphzk;
   digitalWrite(5, LOW);
   wiringPiSPIDataRW(0, poscode, 5);
   fphzk=fopen("apple.dat","rb");
   r=fread(buffer,1,BUFFER_SIZE,fphzk);
   while(r>0)
   {
   digitalWrite(5, HIGH);
   wiringPiSPIDataRW(0, buffer, 1024);
   r=fread(buffer,1,BUFFER_SIZE,fphzk);
   delay(66);
   }
   fclose(fphzk);
}

PC版:

http://v.youku.com/v_show/id_XODY2NTcyNDM2.html

BPI–OLED版:

http://v.youku.com/v_show/id_XODY2NzczNzc2.html

大家都玩起来吧
完整代码包:
链接: http://pan.baidu.com/s/1qWvDwDm 密码: disy(原链接已失效,这是新的链接)

转自:http://www.52pi.net/forum.php?mo … 1310&extra=page%3D1[/td][/tr]
[/table]