HAL库_STM32与陶晶驰T1系列串口屏通讯

这篇具有很好参考价值的文章主要介绍了HAL库_STM32与陶晶驰T1系列串口屏通讯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实验目的

       利用陶晶驰串口屏设计软件、Kei以及STM32CubeMX软件结合硬件,完成串口屏与单片机之间的简单通信。

二、硬件连接

32单片机与串口屏连接

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

串口屏与电源板连接

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

三、使用USART HMI软件完成串口屏界面设计

3.1创建工程

1.点击新建

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

2. 选择保存工程的位置,并设置文件名,点击保存

3. 选择串口屏型号,在串口屏的背面可以看到屏幕的型号或者在购买订单中查找,这里选用的设备为T1系列TJC3224T124_011

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

4. 点击左侧的显示选项,选择一个显示方向,并点击 OK,完成工程的创建

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

3.2建立一个主页

3.2.1修改页面名称

     这里改为main,建议使用英文名称,不建议使用中文或其他非 ascii 字符的文字。

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

3.2.2新建字库和导入字库

2.1点击工具-字库制作

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

2.2设置如下

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

2.3点击生成字库并保存,选择加入刚刚生成的字库

3.2.3加入按钮控件

修改按钮控件显示的文字

front值对应创建的字库,txt值是控件显示的文字,bco和pco可以分别修改背景和文字的颜色

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

3.3建立功能实现页面

3.3.1修改页面名称

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

3.3.2加入控件并编辑

t_是文本控件,b_是按钮控件,n_是数字控件

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

3.4编写代码

完成功能:

1.按下main界面中的b0按钮跳转到界面show_trans;

    点击mian中的b0按钮,编写按钮控件的按下或弹起事件

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

2.按下show_trans界面的b1按钮则n1显示的数值加5,按下show_trans界面的b2按钮则n1显示的数值减5;

    分别点击show_trans中的b1和b2按钮,编写按钮控件的按下或弹起事件:

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

3.按下show_trans界面的其他部分跳转到main界面;

    点击show_trans中空白界面

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

4.按下show_trans界面的b0按钮向单片机发送数据;

淘晶驰没有定义固定的串口屏发送给单片机的数据格式,需要自己定义格式。

常见的通讯协议的格式如下:

帧头 + 帧长度 + 帧内容 + 帧校验 + 帧尾

我们可以根据需要定义一个通讯协议的结构如下:

帧头  + 帧内容 +帧尾

设定帧头为0a,帧尾为ff,帧内容即发送数据设为两个字节。

    点击show_trans界面的b0按钮,编写按钮控件的按下或弹起事件:

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

编译后进行调试,检验功能有没有实现。

四、Keil编写32工程代码

  4.1初始配置

    使用stm32cubeMX完成以下配置,包括系统时钟,下载和串口配置。

    注意串口要使能中断并设置波特率为9600;

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

4.2编写程序

4.2.1修改设置

点击魔法棒,Target-勾选Use Microlib,DEBUG-Setting-Flash Download-勾选Rest and run;

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

淘晶驰串口屏和stm32,stm32,嵌入式硬件,单片机

4.2.3在usart.c中分别重定向printf和get char,scanf函数

#include "stdio.h"
int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);//HAL库串口发送函数
  return ch;
}

int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);//HAL库串口接收函数
  return ch;
}

4.2.4实现串口接收并发送数据

1.在main中第一次调用接收中断函数

/* USER CODE BEGIN 2 */
	HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);
/* USER CODE END 2 */

2.编写HAL_UART_RxCpltCallback中断回调函数,处理接收的数据


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	rx_data[rx_cnt] = rx_byte;     //接收数据转存入数组
	rx_cnt=rx_cnt+1;

	if (rx_data[rx_cnt-1] == 0xFF  && rx_data[rx_cnt-4] == 0x0a)  //判断接收数据的帧头帧尾
	{
		HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
        printf("show_trans.n1.val=%d\xff\xff\xff",rx_data[rx_cnt-3]+rx_data[rx_cnt-2]*256);
		//将收到的数据发送回串口屏
		rx_cnt =0;
		memset(rx_data,0x00,sizeof(rx_data));    //清空数组
	}
	 HAL_UART_Receive_IT(&huart1, (uint8_t *)&rx_byte, 1);//再开启中断
}

串口屏发送的数据格式为0a  _ _  _ _  ff,据此来编写判断条件

if (rx_data[rx_cnt-1] == 0xFF  && rx_data[rx_cnt-4] == 0x0a)  //判断接收数据的帧头帧尾

注意:0a所在字节后第一个字节为低位,第二个字节为高位。

向串口屏发送数据文章来源地址https://www.toymoban.com/news/detail-768657.html

 printf("show_trans.n1.val=%d\xff\xff\xff",rx_data[rx_cnt-3]+rx_data[rx_cnt-2]*256);
		//将收到的数据发送回串口屏

五、下载并完成调试

到了这里,关于HAL库_STM32与陶晶驰T1系列串口屏通讯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32(HAL)串口中断接收

    目录 1、简介 2 基础配置 2.1.1 SYS配置  2.1.2 RCC配置 2.2 串口外设配置  2.3 项目生成  3、KEIL端程序整合 本文对HAL串口中断函数进行介绍。 2.1.1 SYS配置  2.1.2 RCC配置 首先在main.c文件中进行接受变量声明。  接着在主函数的while循环中进行接收中断,如下所示:  最后在主函数

    2024年02月14日
    浏览(35)
  • HAL库 STM32 串口通信

    将STM32的PA9复用为串口1的TX,PA10复用为串口1的RX。STM32芯片的输出TX和接收RX与CH340的接收RX和发送TX相连(收发交叉且PCB上默认没有相连,所以需要用P3跳线帽进行手动连接),CH340的另一端通过USB口引出与USB线相接。CH340作用:RS232电平标准转USB电平标准)。再使用USB转串口线

    2024年02月13日
    浏览(25)
  • HAL库配置STM32串口

    总结使用HAL库的方法,以供自己后续回顾,如有错误,欢迎指正。 首先,使用STM32CubeMax配置串口,记得打开中断。 然后,在串口初始化函数void  MX_USART1_UART_Init(void)中加入 使能接收中断函数,没有这一步,将无法接收数据。  HAL_UART_Receive_IT(huart1,Buffer,1)这个函数在每次进入

    2024年02月02日
    浏览(28)
  • STM32(2)-串口通讯实际应用:串口屏

    文章以UART基础知识和串口屏实际应用来说明串口的作用。 、 UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的缩写,是一种串行通讯协议,通常用于将计算机或微处理器与其他设备(如传感器、模块、显示器等)进行通信。UART可以将数据以一定速率和格式(

    2024年02月16日
    浏览(30)
  • STM32CubeMX串口通讯

    根据通讯使用的电平标准不同, 串口通讯可分为 TTL 标准及 RS-232 标准 。而STM32的串口是TTL电平标准的。如果需要使用到RS-232则需要一个电平转换芯片。 讲到串口,我们还需要具备这些基础概念。 单工通讯 (1)单工通讯特点很简单,就是只有一个发送端,一个接收端。 从一

    2024年02月02日
    浏览(63)
  • stm32----串口通讯,通过串口控制LED灯

    1.初始化LED灯(根据原理图修改pin和gpio): 2.初始化串口 3.编译中断函数: 以下是完整代码: 效果如下

    2024年02月11日
    浏览(31)
  • HAL库STM32的串口收发教程

            首先配置STM32CubeMX 第一步在系统SYS里的Debug(调试)选项选择Serial Wire(这里使用ST-LINK-V2仿真下载器所以选择该项)。  第二打开使用外部晶振  在芯片引脚上点击PC13选择GPIO_Output(即设置GPIO为输出模式) 点击GPIO,点击PC13 在其下方配置引脚: GPIO out  level 设置成

    2024年02月14日
    浏览(27)
  • STM32--HAl库串口接收与发送

            在此之前,我们已经学习了单片机串口通信的原理(江科协),再写一遍我个人认知:世界上任何两个事物如果要进行交流的话,那必然需要两个东西进行通信的,就像两个人之间,两个国人之间用普通话就能够清楚的交流,但是让我们中国人和外国人去交流可能会

    2024年04月10日
    浏览(40)
  • stm32——hal库学习笔记(串口<二>)

    串口X初始化函数 UART底层初始化函数

    2024年02月22日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包