[mw_shl_code=c,true]终于想出来了,分享一下,不过代码可能不够健壮,有问题可以交流[/mw_shl_code]
[mw_shl_code=c,true]
[mw_shl_code=c,true]//下面是主函数部分,文字滚动在while(1)里实现
//当然还需要其他的调用函数,我用的是战舰的STM32板,代码我是借用原
//子哥的代码[/mw_shl_code]
[/mw_shl_code]
[mw_shl_code=c,true]#include"sys.h"
#include"led.h"
#include"delay.h"
#include"oled.h"
#include"string.h"
int main()
{
u8 t;
u8 i=0;
u8 len;
u8 numClr;
delay_init();
LED_Init();
NVIC_Configuration();
OLED_Init();
OLED_ShowString(0,0, "0.96' OLED TEST");
OLED_ShowString(0,48,"CODE:");
OLED_ShowString(0,32,"ASIIC:");
OLED_Refresh_GRAM();
/*
OLED_WR_Byte(0x2e,OLED_CMD);
OLED_WR_Byte(0x29,OLED_CMD);//右滚动
OLED_WR_Byte(0x00,OLED_CMD);//mumuy Byte
OLED_WR_Byte(0x02,OLED_CMD);//开始的页地址
OLED_WR_Byte(0x10,OLED_CMD);//滚动的频率
OLED_WR_Byte(0x03,OLED_CMD);//结束的页地址
OLED_WR_Byte(0x2F,OLED_CMD);//开启滚动
*/
t=' ';
while(1)
{
//-------------------------实现文字滚动------------------------
if(i>0)
{
OLED_ClearOneRow_8Bit(i-1,16,0);//清空前一排
}
OLED_ShowString(i,16,"O love move");
len=strlen("I love move");
i++;
if(i==(122-8*len))
{
for(numClr=0;numClr<len;numClr++)
{
OLED_ShowString(i,16," ");
i+=8;
}
i=0;
}
//----------------------------以上为文字滚动实现[/mw_shl_code]
[mw_shl_code=c,true]
OLED_ShowChar(60,32,t,16,1);//显示ASCII字符
OLED_Refresh_GRAM();
t++;
if(t>'~')t=' ';
ShowNum(60,48,t,3,16);//显示ASCII字符的码值
OLED_Refresh_GRAM();
delay_ms(300);
LED0=!LED0;
}
}
[/mw_shl_code]
|