【陶晶驰串口屏】stm32h743驱动cubeide配置

  • 陶晶驰串口屏简介
  • 串口屏使用思路
  • 单片机控制串口屏
    • 成功显示!

陶晶驰串口屏简介

首先介绍串口:
串口正常情况下包括至少两根信号线,作为像是UART需要两根总线,一根是TXD发送数据线和一根RXD接收数据线。而串口屏就是可以通过单片机的串口来控制屏幕显示,有着操作简单的优点。本文使用的串口屏为陶晶驰串口屏。

首先在这里放一个陶晶驰串口屏的网址:陶晶驰官网,其资料中心有很多关于控制显示控件的函数的介绍。感兴趣的读者可自行探索。

串口屏使用思路

  • 在软件usarthimi中设计显示内容,增添控件。这一步在陶晶驰官网的资料中心有较详细的讲解。故不再赘述。

  • 使用USB to TTL模块(CH340G等),将usarthimi中设计的工程下载到串口屏内。

  • 单片机使用usart通信,控制串口屏中控件的显示。

单片机控制串口屏

  1. 首先我们新建一个cubeide工程,习惯性配置RCC。
  2. 配置usart,用于和串口屏通信,只需选择asynchronous即可。


3. 到project manager中勾选这个

点击左上角圆柱体图标,生成代码
4.下面分享sys.c和sys.h,其中包含了能实现多串口输出的代码.将void Uart_printf(UART_HandleTypeDef *huart,char *format, …)移植到自己的代码中。

ytcesys.c

#include "ytcesys.h"
#include <stdarg.h>#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>///*
//* 描述: HAL库实现多串口使用printf输出
//* 参数: huart:对应的串口结构体
//* 返回: 无*/
void Uart_printf(UART_HandleTypeDef *huart,char *format, ...)
{char buf[512]; //定义临时数组,根据实际发送大小微调va_list args;va_start(args, format);uint16_t len = vsnprintf((char *)buf, sizeof(buf), (char *)format, args);va_end(args);HAL_UART_Transmit(huart,(u8 *)buf,len,1000);
}

ytcesys.h

#ifndef __YTCESYS_H
#define __YTCESYS_H
#include "stm32h7xx_hal.h"#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
#define u64 uint64_t
typedef __IO uint32_t  vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t  vu8;
extern void HAL_Delay_us(uint32_t nus);void Uart_printf(UART_HandleTypeDef *huart,char *format, ...);#endif

5.将所用的头文件添加路径里,并在main.c中#include头文件

6.tset
(其中scr_wave是我在usart中一个控件的objname,相当于通过一个printf函数告诉串口屏,scr_wave.txt=“sine”\xff\xff\xff,即设置这个控件的文本为sine\xff\xff\xff是结束符。

/* USER CODE BEGIN Header */
/********************************************************************************* @file           : main.c* @brief          : Main program body******************************************************************************* @attention** Copyright (c) 2022 STMicroelectronics.* All rights reserved.** This software is licensed under terms that can be found in the LICENSE file* in the root directory of this software component.* If no LICENSE file comes with this software, it is provided AS-IS.********************************************************************************/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "usart.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "ytcesys.h"
/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD *//* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART3_UART_Init();/* USER CODE BEGIN 2 */Uart_printf(&huart3,"scr_wave.txt=\"sine\"\xff\xff\xff");//串口屏实时显示/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}/*** @brief System Clock Configuration* @retval None*/
void SystemClock_Config(void)
{RCC_OscInitTypeDef RCC_OscInitStruct = {0};RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};/** Supply configuration update enable*/HAL_PWREx_ConfigSupply(PWR_LDO_SUPPLY);/** Configure the main internal regulator output voltage*/__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}/** Initializes the RCC Oscillators according to the specified parameters* in the RCC_OscInitTypeDef structure.*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();}/** Initializes the CPU, AHB and APB buses clocks*/RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2|RCC_CLOCKTYPE_D3PCLK1|RCC_CLOCKTYPE_D1PCLK1;RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;RCC_ClkInitStruct.APB3CLKDivider = RCC_APB3_DIV1;RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV2;RCC_ClkInitStruct.APB2CLKDivider = RCC_APB2_DIV1;RCC_ClkInitStruct.APB4CLKDivider = RCC_APB4_DIV1;if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK){Error_Handler();}
}/* USER CODE BEGIN 4 *//* USER CODE END 4 *//*** @brief  This function is executed in case of error occurrence.* @retval None*/
void Error_Handler(void)
{/* USER CODE BEGIN Error_Handler_Debug *//* User can add his own implementation to report the HAL error return state */__disable_irq();while (1){}/* USER CODE END Error_Handler_Debug */
}#ifdef  USE_FULL_ASSERT
/*** @brief  Reports the name of the source file and the source line number*         where the assert_param error has occurred.* @param  file: pointer to the source file name* @param  line: assert_param error line source number* @retval None*/
void assert_failed(uint8_t *file, uint32_t line)
{/* USER CODE BEGIN 6 *//* User can add his own implementation to report the file name and line number,ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) *//* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */

成功显示!

在陶晶驰官网的指令集中还有更多丰富的指令,都可以通过
Uart_printf(&所用串口,“指令\xff\xff\xff”);
的格式实现串口屏实时显示,感兴趣的可以自行搜索

【陶晶驰串口屏】stm32h743驱动cubeide配置相关推荐

  1. cubemx stm32 陶晶驰 串口屏 基于YXY通信原理的串口屏驱动代码

    陶晶驰串口屏 资料 陶晶驰串口屏是本质是一个MCU,屏幕是MCU的模块,一般是一块TFT屏幕.在串口屏厂商提供的软件上面编写界面,然后通过串口直接烧到串口屏的MCU上,然后在屏幕上展示出来. 串口屏资 ...

  2. STM32F429与陶晶驰串口屏数据传输(1)

    这几天正好参加2019年电赛国赛,为了节约io口的使用量,开始考虑使用串口屏:使用串口屏的好处不仅能够充当显示屏用,而且还内置了数字键盘,无需腾出io口给矩阵键盘. 我所使用的串口屏型号为:TJC48 ...

  3. 陶晶驰串口屏使用总结

    屏幕型号:TJC1060X570_011 FLASH:128M RAM:32KB Frequency:200M 1.关于图层显示问题,陶晶驰的page界面是最底层的,控件是第二层的,图片是最上层的,新 ...

  4. STM32CUBEMX学习笔记——陶晶驰串口屏中断接收数据

    网上很多串口屏的开发都是基于标准库开发的,我本人接触到的开发模式是CUBEMX,两种开发环境导致很多资料之间有点割裂,因此我将自己之前学习标准库的开发方式利用CUBEMX实现的方法写在这,防止自己忘记 ...

  5. STM32F429与陶晶驰串口屏数据传输(2)

    串口屏发送数据单片机 波特率要改为9600 数据的传输并非二进制数,而是 ASCII 值 stm32f429单片机:UART-串口接收 1. 串口接收中断程序的配置(HAL库) (1)首先要去配置串口 ...

  6. STM32F103—有关陶晶驰串口屏的串口使用代码

    串口HMI的基本指令集(官网链接) [USART HMI 资料中心] 注:设备接收指令结束符为"0XFF 0XFF 0XFF"三个字节(HEX数据,不是字符串数据). 适用于STM ...

  7. 陶晶驰串口屏与香橙派linux开发板踩坑记录

    一开始我是这么接线的,想着反正香橙派能对外输出5V,这样就不用外部电源了,但是发现指令执行异常,非常诡异,只有第一条指令能执行,后面的不行,重启后,还是这么个轮回. 直到我发现 外部供电接法 - 淘晶 ...

  8. 陶晶驰串口屏学习3之get和prints

    1.两个都是串口发送函数,也就是从串口屏发送数据给单片机.串口调试助手等其他设备,二者的区别见 2.get prints printh发送数据命令一般要在页面刷新命令之前,不然数据就没了.

  9. 陶晶驰stm32_陶晶驰串口屏学习日记(1)

    关于文本控件的key属性和按钮控件的注意事项: 1 一定加入的是文本控件,把vscope设置成全局才能使用key属性里的键盘.我刚开始用了文本控件设置了key为keybdB,然后又自己弄了个按钮控件, ...

最新文章

  1. Android 编程下代码之(QQ消息列表滑动删除)
  2. python函数几个return语句_Python常用函数--return 语句-阿里云开发者社区
  3. 经济学人使用Golang构建微服务历程回顾
  4. Linux编程——入门级Makefile文件编写
  5. 解决安装svn后出现Unable to connect to a repository at URL以及认证失败
  6. 读懂python代码_读懂花里胡哨的14行Python代码!
  7. windows下mysql命令_windows下的mysql命令使用
  8. springboot 配置双mysql数据库
  9. CRM和C4C里的组织架构 - Organizational Structure
  10. mysql 快照能否恢复某个表_mysql全库备份恢复某个表
  11. 安徽工业大学计算机考研历年分数线,安徽工业大学历年考研分数线汇总[2012-2021]...
  12. rn项目 假如cocoapods_React Native 如何集成到原生IOS项目中?
  13. 让计划任务生成的文件中包含当前日期
  14. echarts实用小技巧,控制字符串长度,限定整数等
  15. ASP.NET MVC 使用 Log4net 记录日志
  16. 十六位顶尖专家齐聚,解密阿里云最新核心技术竞争力!
  17. java专用英语词典软件_英语词典app哪个好 5款好用的英语词典app推荐
  18. wampServer虚拟主机配置
  19. c 连接mysql云数据库_直击DTCC | 《MySQL云数据库架构设计与实践》主题分享
  20. 哪家的云游戏服务器好?如何选择云游戏服务器?

热门文章

  1. 小红书种草笔记对于品牌宣传的作用(原创图文)
  2. java获取视频真实地址,Java版蓝奏云真实地址获取
  3. 项目8 利用DHCP自动分配IP地址
  4. 亿级流量电商详情页系统实战(完整版):缓存架构+高可用服务架构+微服务架构(包含落地代码实操)
  5. windows 关闭简体繁体转换
  6. 开始在 Linux 系统上使用开源的 SQL 数据库吧。
  7. win7 64位系统与32系统的区别
  8. 探花交友_第11章_数据统计与内容审核(新版)
  9. lcm模块 oracle,LCM模组结构 工艺 材料 设备 全解析(模组人员必学)
  10. tyjl二型计算机联锁系统,TYJLII型计算机联锁系统的组成及维护样稿.doc