1.OLED屏
示例:
主函数:
int core0_main (void)
{
//char txt[16];
// 关闭CPU总中断
IfxCpu_disableInterrupts();
// 关闭看门狗,如果不设置看门狗喂狗需要关闭
IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());
// 读取总线频率
g_AppCpu0.info.pllFreq = IfxScuCcu_getPllFrequency();
g_AppCpu0.info.cpuFreq = IfxScuCcu_getCpuFrequency(IfxCpu_getCoreIndex());
g_AppCpu0.info.sysFreq = IfxScuCcu_getSpbFrequency();
g_AppCpu0.info.stmFreq = IfxStm_getFrequency(&MODULE_STM0);
// 按键初始化
GPIO_KEY_Init();
// LED灯所用P10.6和P10.5初始化
GPIO_LED_Init();
// 串口P14.0管脚输出,P14.1输入,波特率115200
UART_InitConfig(UART0_RX_P14_1,UART0_TX_P14_0, 115200);
// 开启CPU总中断
IfxCpu_enableInterrupts();
// 通知CPU1,CPU0初始化完成
IfxCpu_releaseMutex(&mutexCpu0InitIsOk);
// 切记CPU0,CPU1...不可以同时开启屏幕显示,否则冲突不显示
mutexCpu0TFTIsOk=0; // CPU1: 0占用/1释放 TFT
Test_OLED(); //PASS,测试OLED0.96屏使用P20.14--10,显示字符串及动态数据
// 所有含有中断的测试都默认在CPU0中执行,如果需要用CPU1请参考龙邱B站视频。
while (1) //主循环
{
LED_Ctrl(LED0,RVS); //电平翻转,LED闪烁
delayms(100);
}
}
TEST_OLED函数:
void Test_OLED(void)
{
OLED_Init(); //OLED初始化
OLED_Show_LQLogo(); //显示LOGO
delayms(2000);
OLED_CLS();
while (1)
{
//OLED_P6x8Str(0,7,"OLED 3."); //字符串
//delayms(1000);
//OLED_Rectangle(0, 0, 127,62,0); //绘制矩形
//OLED_Rectangle(24,8,88,55,1);
//OLED_Rectangle(32,16,80,47,1);
//OLED_Rectangle(40,24,72,39,1);
//delayms(1000);
//OLED_CLS(); //清屏
// x : 0-127
// y : 0-6
//一个字符高16 OLED高度64
OLED_P8x16Str(0, 0,"OLED 1."); //显示字符串,前两个参数为位置,左上角为0,0 右下角 127,63
delayms(1000);
OLED_P8x16Str(60,4,(unsigned char*)"wdlnb"); //OLED_P14x16Str,显示汉字,需要添加字库
//OLED_PutPixel(120,60);
delayms(1000);
OLED_CLS(); //清屏
OLED_Fill(); //填充
delayms(1000);
OLED_CLS(); //清屏
//延时
delayms(50);
}
}