打印
[MM32软件]

【MM32 eMiniBoard测评报告】3、HMI_LCD串口屏

[复制链接]
380|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 海洋无限 于 2020-5-24 10:57 编辑

1、板卡上其他外设在论坛中效果不好展示,手上刚好有块HMI的串口屏,不带触摸功能,想着结合串口一起调试下开发板的UART
2、例程中用的是串口1,这里使用的是串口2,按照例程串口1配置,也不难
3、先来看看串口配置部分
GPIO_InitTypeDef GPIO_InitStructure;
    UART_InitTypeDef UART_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;
  
    GPIO_StructInit(&GPIO_InitStructure);
    UART_StructInit(&UART_InitStructure);
  
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART2, ENABLE);
    RCC_AHBPeriphClockCmd(USART2_GPIO_CLK, ENABLE);
  
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);

      //UART1_TX   GPIOA.9
    GPIO_InitStructure.GPIO_Pin = USART2_Tx_PIN; //PA.2
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(USART2_GPIO_PORT, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = USART2_Rx_PIN;//PA.3
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(USART2_GPIO_PORT, &GPIO_InitStructure);
   
    //CFG_UART_Clock(UART2, ENABLE);
    UART_InitStructure.UART_BaudRate = USART2_BaudRate;
    UART_InitStructure.UART_WordLength = UART_WordLength_8b;
    UART_InitStructure.UART_StopBits = UART_StopBits_1;
    UART_InitStructure.UART_Parity = UART_Parity_No;
    UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
    UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx;
   
    UART_Init(UART2, &UART_InitStructure);
    UART_ITConfig(UART2, UART_IT_RXIEN, ENABLE);
    UART_Cmd(UART2, ENABLE);
发送部分
void UART2_Tx_DATA(uint8_t data)
{
      while((UART2->CSR&UART_IT_TXIEN)==0);
    UART2->TDR = (data & (uint16_t)0x00FF);
}
4、这里说下接收部分,接收部分开始配置的是中断方式,但是试了几次,只要接收就会出现死机,看例程都是DMA方式,刚好我暂时用不到接收,所以就没有处理串口接收这块,中断方式接收后续需要在研究
5、到这里串口配置部分就结束了,接下来就是HMI串口屏的开发,这部分参考HMI相关手册即可,贴几张图看看

界面1哈哈,随便贴的图,界面2是准备后期完善的部分,准备和Key配合起来做这几个部分的测试,由于屏和开发板接口不同,家里又没啥接线的工具,这里着实耽搁了点事,好了不说废话了
由于我的不是触摸屏,所以计划Key3作为切换功能界面的按钮,Key4作为具体某个动能的开启和关闭,按一下开启,再按一下关闭,具体功能部分计划如下:
1、LED  流水灯,开发板上灯和屏上的状态同步
2、Music 准备和前一篇的Buzzer结合起来
3、Photo 准备做个类似电子相册的东西
4、USB   准备学习下USB部分的内容

6、关于HMI屏部分,这里就不多说了,只说下目前测试的串口切 页面部分
char EndString[4]={0xFF,0xFF,0xFF,'\0'};
char DisLimitString[30];
char *PAGE[6] = {"page 0", "page 1", "page 2", "page 3", "page 4", "page 5"};
[code]void DisPage(unsigned char page)
{
  strcpy(DisLimitString,PAGE

使用特权

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

本版积分规则

个人签名:永远忠于年轻时的梦想!

20

主题

375

帖子

1

粉丝