本案例stm32与淘晶驰串口屏双向通讯例程,包含了stm32cube mx生成的keil MDK工程(HAL库),STM32F103C8T6,STM32F103ZET6单片机都能正常向串口屏发送数据和接收来自串口屏数据,电脑的串口助手能收到打印的数据。注意,以下代码仅为演示代码,用于测试显示屏能实现最基本的通信功能,如果您需要在正式产品中进行使用,请根据自己的需求对代码进行相应的优化和修改,或以自己的方式实现相应的功能。
一、开发环境
单片机:STM32F103C8T6
Keil版本:5.32
STM32CubeMX版本:6.12.0
STM32Cube MCU Packges版本:STM32F1xx_DFP.2.3.0
串口:USART2(PA2,PA3).一定要注意,例程是用的是串口2的,不要接到串口1上去了。
单片机、串口屏与 PC 的联合调试:
接线方式如图所示
⚠️ 注意:单片机 UART2_RX ← USB转TTL的 TXD不接,悬空(原用于接收电脑发来的指令)
USB转TTL的 TX 和 串口屏的 TX 同时接到单片机的 RX 引脚,会造成信号冲突,会造成接受异常,所以,只接USB转TTL的 RX,USB转TTL的 TX不接。

二、配置STM32CubeMX, 使用keil5(MDK)开发
0、启动STM32CubeMX,新建STM32CubeMX项目
选择MCU:在软件中选择你的STM32型号-STM32F103C8T6,如果你的单片机是STM32F103ZET6就选择对应的型号。

**USART2配置:**选择异步模式。注意是串口2,USART2(PA2,PA3).

使能Debug功能:Serial Wire,HAL库时基选择:SysTick,生成代码

1、切换到Project Manager界面,设置Project Name(工程名称)和Project Location(工程路径),最后点击GENERATE CODE来生成代码。


2、点击打开文件夹

3、将淘晶驰串口屏头文件复制到这个目录下

4、将官方提供的tjc_usart_hmi.c复制到Src文件夹,将tjc_usart_hmi.h复制到Inc文件夹(这两个文件会在后面的工程里提供,需要自行从工程里找到然后导入自己的工程中)。

5、打开工程

6、将刚刚的文件添加到工程文件中

7、添加include和define定义

8、添加初始化和变量定义

9、在while里添加串口发送和解析的代码

10、点击魔法棒的图标,配置一下调试器

11、选择你的调试器,我这里使用的是st-link,选择完毕后点击Settings

12、切换到Flash Download标签,勾选 Reset and Run

13、点击Pack,取消勾选Enable,所有设置就完毕了

14、主界面的两个按钮分别是编译和下载

三、测试结果

1、串口助手打印:
单片机定时发送指令,
n0.val=107,t0.txt="107", click b0,1,n0.val=108,t0.txt="108", click b0,1
按下屏幕的按键的灯时候,灯会点亮,串口打印
收←msg.txt="led 1 is off"
收←msg.txt="led 2 is on"

2、可以看实物串口屏的数值,一直在增长,按键不断地按下弹起.实物串口屏与串口打印的数据一致。


参考:下载《stm32与串口屏双向通讯》例程