搜索

[MM32软件] 【MM32 eMiniBoard测评报告】3、HMI_LCD串口屏

[复制链接]
47|0
 楼主 | 2020-5-23 22:55 | 显示全部楼层 |阅读模式
本帖最后由 海洋无限 于 2020-5-24 10:57 编辑

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

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

  18.     GPIO_InitStructure.GPIO_Pin = USART2_Rx_PIN;//PA.3
  19.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  20.     GPIO_Init(USART2_GPIO_PORT, &GPIO_InitStructure);
  21.    
  22.     //CFG_UART_Clock(UART2, ENABLE);
  23.     UART_InitStructure.UART_BaudRate = USART2_BaudRate;
  24.     UART_InitStructure.UART_WordLength = UART_WordLength_8b;
  25.     UART_InitStructure.UART_StopBits = UART_StopBits_1;
  26.     UART_InitStructure.UART_Parity = UART_Parity_No;
  27.     UART_InitStructure.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
  28.     UART_InitStructure.UART_Mode = UART_Mode_Rx | UART_Mode_Tx;
  29.    
  30.     UART_Init(UART2, &UART_InitStructure);
  31.     UART_ITConfig(UART2, UART_IT_RXIEN, ENABLE);
  32.     UART_Cmd(UART2, ENABLE);
复制代码
发送部分
  1. void UART2_Tx_DATA(uint8_t data)
  2. {
  3.       while((UART2->CSR&UART_IT_TXIEN)==0);
  4.     UART2->TDR = (data & (uint16_t)0x00FF);
  5. }
复制代码
4、这里说下接收部分,接收部分开始配置的是中断方式,但是试了几次,只要接收就会出现死机,看例程都是DMA方式,刚好我暂时用不到接收,所以就没有处理串口接收这块,中断方式接收后续需要在研究
5、到这里串口配置部分就结束了,接下来就是HMI串口屏的开发,这部分参考HMI相关手册即可,贴几张图看看
333.png 555.png
界面1哈哈,随便贴的图,界面2是准备后期完善的部分,准备和Key配合起来做这几个部分的测试,由于屏和开发板接口不同,家里又没啥接线的工具,这里着实耽搁了点事,好了不说废话了
由于我的不是触摸屏,所以计划Key3作为切换功能界面的按钮,Key4作为具体某个动能的开启和关闭,按一下开启,再按一下关闭,具体功能部分计划如下:
1、LED  流水灯,开发板上灯和屏上的状态同步
2、Music 准备和前一篇的Buzzer结合起来
3、Photo 准备做个类似电子相册的东西
4、USB   准备学习下USB部分的内容

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

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表