打印
[技术相关]

【SWM166-SPI-Y1.28C1测评】+2、解读圆形旋钮带外壳软件例程

[复制链接]
366|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
打开资料包中《SWM166-SPI-Y1.28C1》软件工程,打开主函数如下:
int main(void)
{       
        SystemInit();
        MyUartInit(921600);
        spi_flash_init();
        GC9A01_Init();       
        SPI_DMA_SendGet_Init();
        Timer_Init();       
        KEY_Init();
        Show_**();
        Show_meau_First(Meau_BianPinJieDong);
        while(1==1)
        {
                /*实时更新*/
                DataDeal_485();
                Key_Get_IO();
                /*逻辑*/
                Key_Deal();       
        }
}
首先SystemInit();初始化运行主频为90Mhz
MyUartInit(921600);初始化串口1波特率为921600bit/s
spi_flash_init();外挂SPI Flash存储芯片的初始化。
GC9A01_Init();        1.28寸圆屏驱动芯片初始化,同样采用Spi驱动。
SPI_DMA_SendGet_Init(); 配置SPI传输为DMA模式,用于快速驱动屏幕显示。
Timer_Init();定时器0初始化,按键按下时间长短判断。
KEY_Init();  编码器引脚初始化
Show_**(); 显示示例**图片。
Show_meau_First(Meau_BianPinJieDong);  显示第一个菜单图标
以上初始化完毕,接下来进入大循环
               
DataDeal_485(); //串口接收上位机发来的图片数据,并将数据写入外挂flash中,用于屏幕显示
Key_Get_IO();   //编码器检测,包含正反旋转选择功能,按键短按、长按操作功能。产生标志供显示界面判断显示。
Key_Deal();  //根据编码器检测的标志位,显示相应的界面图标,使按键逻辑与显示逻辑各自独立,方便管理修改。
  几个关键的函数解析:
Show_**();//显示示例**图片
void Show_**(void)
{
    for(uint16_t i = 53; i > 0; i--)
    {
        GPIO_Init(GPIOA, PIN1, 1, 0, 0, 0);                        //输出,接LED
        GPIO_Init(GPIOA, PIN2, 1, 0, 0, 0);                        //输出,接LED       
        GPIO_Init(GPIOA, PIN3, 1, 0, 0, 0);                        //输出,接LED       
               
        SysTick_Config(SystemCoreClock/24000);   //0.25秒钟触发一次中断
        LCD_ShowImg_**(0,0,ICO_01 + i);
    }
}
函数中for循环了54次,LCD_ShowImg_**(0,0,ICO_01 + i); 函数执行了54次,关键变量ICO_01,找到其定义处:
这是图片的索引,循环了54次即按顺序显示了54张图片。再看下LCD_ShowImg_**函数:
XSYS表示图片显示的起始坐标,即决定了图片显示的位置。关键变量ImgMap_**,这是一个三维数组,包含了图片对应在外挂flash的存储地址,图片的高和宽:
有了这三个信息,LCD_ShowImg_**函数下半段就是从图片相应的存储地址读取图片数据,再将图片数据发送给屏幕显示,再详细一点,就是根据图片的高和宽,分别逐点读取flash数据到缓存,再立即将缓存数据传输至屏幕显示,以保证屏幕快速刷新,这样即实现了可以在屏幕任何位置显示图片的功能。
下一章节,准备更换下图片资源,将图片显示流程过一遍。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

51

帖子

4

粉丝