Skip to content

HelloByeAll/AzureGUIX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AzureGUIX

2021-01-14 增加ART-PI SPI屏驱动

调用MainTask.c中的MainTask();即可完成初始化

开发者使用时需自行更改Examples中MainTask.c中的下列参数

extern ULONG display_1_canvas_memory[512]; 
此处数组大小应与Studio生成的大小相同

uint8_t oled_canvas_memory[2048];
此处大小与上面数组大小相同  目的是为了存储转换扫描方式后的数据
实际所用屏幕可能和Studio中的界面扫描方式不同 (Studio中界面扫描方式为 从左到右,从上到下)


自行实现oled打点函数
void GuiDrawPoint(uint8_t x, uint8_t y, uint8_t color)
{
    .....
}

在外部文件中自行实现下列函数  
extern void lcd_address(uint8_t page, uint8_t column);
extern void transfer_data(uint8_t *data, uint8_t len);

使用GUIX Studio可打开GUIX Studio OLED Demo中的工程 GUIX Studio生成的文件需要替换Example文件夹中的同名文件才能生效

虚拟设备 GUIX_VIRTUAL_DISPLAY_MONO

虚拟设备目前仅为128*128的单色设备

虚拟设备使用串口发送至上位机,开发者需要根据自身硬件选择波特率,若不使用DMA建议最大波特率设置成460800! 并用中断接收方式打开设备

rt_device_open(uart_device, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX);
static void rt_virtual_serial_init(char *name)
{
    serial_sem = rt_sem_create("mono_sem", 0, RT_IPC_FLAG_FIFO);

    uart_device = rt_device_find(name);

    struct serial_configure use_config = {
        BAUD_RATE_921600,   /* 921600 bits/s */
        DATA_BITS_8,        /* 8 databits */
        STOP_BITS_1,        /* 1 stopbit */
        PARITY_NONE,        /* No parity  */
        BIT_ORDER_LSB,      /* LSB first sent */
        NRZ_NORMAL,         /* Normal mode */
        RT_SERIAL_RB_BUFSZ, /* Buffer size */
        0};

    rt_device_open(uart_device, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_DMA_RX | RT_DEVICE_FLAG_DMA_TX);

    if (RT_EOK != rt_device_control(uart_device, RT_DEVICE_CTRL_CONFIG, (void *)&use_config))
    {
        rt_kprintf("uart config baud rate failed.\n");
    }

    rt_device_set_rx_indicate(uart_device, uart_input);

    return;
}

![Virtual Display](./Virtual Display\Virtual Display.jpg)

1.上位机使用鼠标模拟按键操作 右上角显示为当前坐标和触摸状态。

2.上位机右上方三个按键已绑定数字键盘 ”1", 2“, "3",已实现长按短按。

用户在

guix_virtual_display_mono.c 文件中加入按键回调即可
static void key_cb(rt_uint8_t key, rt_uint8_t state)
{
    switch (key)
    {
    case 1:
        if (state)
        {
            /* 按键1长按 */
        }
        else
        {
            /* 按键1短按 */
        }
        break;

    case 2:
        if (state)
        {
            /* 按键2长按 */
        }
        else
        {
            /* 按键2短按 */
        }
        break;

    case 3:
        if (state)
        {
            /* 按键3长按 */
        }
        else
        {
            /* 按键3短按 */
        }
        break;
    }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages