stm32与串口屏双向通讯官方例程

本案例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与串口屏双向通讯》例程

相关推荐
电子小白1235 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout
清风6666666 小时前
基于单片机的多传感器智能云梯逃生控制器设计
单片机·嵌入式硬件·毕业设计·智能家居·课程设计
小何code6 小时前
STM32入门教程,第10课(上),OLED显示屏
stm32·单片机·嵌入式硬件
来自晴朗的明天6 小时前
高速画板-USB模块的PCB设计5-USB2.0/3.0布局布线要求
单片机·嵌入式硬件·硬件工程
Felven8 小时前
A. Helmets in Night Light
c语言
早日退休!!!8 小时前
ARM Cortex-M核 【保存上下文&恢复上下文】
arm开发·单片机·嵌入式硬件
来自晴朗的明天9 小时前
差分控多少Ω阻抗
单片机·嵌入式硬件·硬件工程
Illusionna.9 小时前
C语言自动进行独立样本 t 检验
c语言·自动化·显著性·统计检验·独立样本t检验·ttest·levene
qq_401700419 小时前
C语言 条件编译宏
c语言·开发语言
逑之9 小时前
C语言笔记5:函数
java·c语言·笔记