stm32f103ct6控制陶晶驰显示屏
时间: 2024-12-27 10:29:47 浏览: 4
### STM32F103CT6 控制陶晶驰显示屏教程
#### 一、硬件连接说明
为了实现STM32F103CT6与陶晶驰串口屏之间的通信,需要按照特定的方式连接两者。通常情况下,主要涉及的是UART接口的对接。
| 功能 | STM32F103CT6引脚编号(Pin) | 连接至陶晶驰屏幕 |
| -- | --------------- |
| GND (接地线) | NRST旁边的第一个管脚(Ground Pin) | 屏幕GND端子 |
| VCC (+5V电源输入) | PA9附近的一个正极供电针(Voltage Supply Plus Five Volt) | 屏幕VCC端子 |
| TXD (发送数据) | USART1_TX对应的PA9 | 屏幕RXD接收端 |
| RXD (接收数据) | USART1_RX对应的PA10 | 屏幕TXD发送端 |
注意:确保所使用的电压等级匹配,避免因过压损坏设备[^1]。
#### 二、初始化设置及基本配置
在程序启动阶段完成必要的参数设定非常重要,这包括但不限于波特率、亮度调整以及初始页面加载等操作:
```c
#include "stm32f1xx_hal.h"
UART_HandleTypeDef huart1;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);
int main(void){
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
// 配置波特率为115200
uint8_t config[] = {0x7E, 0xFF, 0x01, 0x04, 0x00, 0xA4, 0x02, 0xE8, 0x03};
HAL_UART_Transmit(&huart1, config, sizeof(config), HAL_MAX_DELAY);
// 设置亮度为最大值(可选)
uint8_t brightness[] = {0x7E, 0xFF, 0x01, 0x03, 0x00, 0xAB, 0x64};
HAL_UART_Transmit(&huart1, brightness, sizeof(brightness), HAL_MAX_DELAY);
// 刷新第一页作为默认显示界面
uint8_t pageCmd[] = {0x7E, 0xFF, 0x01, 0x03, 0x00, 0xAF, 0x00};
HAL_UART_Transmit(&huart1, pageCmd, sizeof(pageCmd), HAL_MAX_DELAY);
while (1){}
}
// 初始化USART1函数体省略...
```
以上代码片段展示了如何通过HAL库来初始化USART外设,并向串口屏发送指令以完成初步配置工作[^3]。
#### 三、动态更新显示内容的方法
当涉及到实时数据显示时,则可以利用`t1.txt`这样的文本组件来进行处理。下面给出了一种简单的方式来实现在指定位置写入新的数值或字符序列:
假设要在屏幕上某个固定区域展示温度读数,那么可以通过如下方式构建相应的命令包并将其传输给目标器件:
```c
float temperatureValue = /* 获取当前测量得到的具体温湿度 */;
char buffer[20];
sprintf(buffer,"%d", (int)(temperatureValue * 10)); // 将浮点型转换成整数形式存储于缓冲区内
uint8_t updateTextCommand[]={
0x7E,
0xFF,
strlen(buffer)+5,// 数据长度计算
0x00,
0x22,'t','1','.','t','x','t',/* 文件路径 */
'\r',
'\n'
};
strcat((char*)updateTextCommand+7,buffer); // 合并文件名后的部分加上实际要显示的内容
HAL_UART_Transmit(&huart1, updateTextCommand,strlen((const char *)updateTextCommand)-1 , HAL_MAX_DELAY);
```
这段逻辑实现了将最新获取到的数据转化为适合串口屏解析的形式并通过串行链路传递过去,在那里它会被渲染出来供用户查看。
阅读全文