串口屏幕学习笔记

一、串口屏简介

串口屏、TFT、oled屏
在这里插入图片描述

不多说了~串口屏NB
在这里插入图片描述
在这里插入图片描述

二、上位机(屏幕UI)

制作一个简单工程 ------- 如上非常简单,总结一下流程
1.新建工程选择:版型、显示方向
2.Program.s加入

在page指令之前添加如下配置,注意必须添加在page之前,因为page之后的指令是不会执行的
//以下代码只在上电时运行一次,一般用于全局变量定义和上电初始化数据
int sys0=0,sys1=0,sys2=0     //全局变量定义目前仅支持4字节有符号整形(int),不支持其他类型的全局变量声明,如需使用字符串类型可以在页面中使用变量控件来实现
bkcmd=3                    //都有返回值
baud=115200                //波特率
dims=100                   //亮度
page 0                     //上电刷新第0页

3.制作-保存-添加字库
4.添加模块-了解其属性
5.调试

三、下位机(STM32)

STM32程序 修改全局变量n0~n5的值即可在修改屏幕上的数字 

PA9----USART1  TX
PA10---USART1  RX

PA2----USART2  TX
PA3----USART2  RX


printf已经重定向

main.c

#include "main.h"
#include "usart.h"
#include "gpio.h"

#include "stdio.h"
/*******************************************                         
* 时间: 2021.4.4                             
* 作用:串口1————与串口屏通信  修改n0.val 
*       串口2————与pc通信调试               
* 作者:黄新煜	                             
*********************************************/

int n0=0;  //一号数目
int n1=0;  //二号数目
int n2=0;  //三号数目
int n3=0;  //四号数目
int n4=0;  //残留数目
uint8_t Tx_str2[] = "stm32上电\r\n";
uint8_t Rx_dat =0   ;


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USART2)
    {
        n0=(int)Rx_dat;
				HAL_UART_Receive_IT(&huart2,&Rx_dat,1);
    }
}

void HMI(void)
{
	printf("n0.val=%d\xff\xff\xff",n0);
	printf("n1.val=%d\xff\xff\xff",n1);
	printf("n2.val=%d\xff\xff\xff",n2);
	printf("n3.val=%d\xff\xff\xff",n3);
	printf("n4.val=%d\xff\xff\xff",n4);
}


int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();

  HAL_UART_Transmit(&huart2,Tx_str2,sizeof(Tx_str2),10000);    
  //向上位机发送"stm32上电"
  
  while (1)
  {	
    HAL_UART_Receive_IT(&huart2,&Rx_dat,1);   //启动串口2接收上位机1个字节
	HMI();                                    //更新屏幕数据
  }
}

usart.c

#include "stdio.h"

int fputc(int ch,FILE *f)
{
    uint8_t temp[1]={ch};
    HAL_UART_Transmit(&huart1,temp,1,2);
   	return 0;
}
### STM32 使用 OLED 显示学习笔记与教程 #### 关于 STM32 和 OLED 的基础知识 STM32 是一种基于 ARM Cortex-M 架构的微控制器系列,广泛应用于嵌入式开发领域。OLED(有机发光二极管)显示因其高对比度、低功耗等特点,在许多项目中被用作显示设备。为了实现 STM32 对 OLED 屏幕的支持,通常需要完成硬件连接以及软件驱动程序的设计。 以下是有关 STM32 驱动 OLED 显示的一些关键知识点: #### 硬件连接方式 在 STM32 中,OLED 通常通过 IIC(I²C)、SPI 或 UART 接口进行通信。其中最常见的是 IIC 协议,因为它只需要两根线即可完成数据传输,简化了硬件设计[^1]。具体的硬件连接方法可以参考实际使用的模块手册或相关文档。 #### 软件初始化过程 对于 STM32 来说,使用 OLED 显示的第一步是对屏幕进行初始化配置。这一步骤包括设置通信协议参数、定义屏幕分辨率以及其他必要的寄存器操作。以下是一个简单的初始化代码示例: ```c #include "stm32f10x.h" #include "OLED.h" int main() { SystemInit(); // 初始化系统时钟 OLED_Init(); // 初始化 OLED 模块 while (1) { OLED_ShowString(2, 1, "Hello"); // 在第 2 行第 1 列显示字符串 "Hello"[^3] } } ``` 上述代码展示了如何调用 `OLED_Init()` 函数来启动 OLED 并利用 `OLED_ShowString` 方法向屏幕上写入文字信息。 #### 数据打印至 OLED 屏幕 如果希望将来自串口的数据实时展示到 OLED 上,则需编写额外的功能逻辑处理接收到的信息并将其传递给 OLED 控制接口。例如,可以通过中断服务例程捕获串口输入流,并逐字符绘制到指定位置上[^2]。 #### 进阶功能扩展 除了基本的文字输出外,还可以尝试实现更复杂的图形化界面效果,比如加载位图图像或者支持多语言字体渲染等功能。这些都需要深入理解底层库文件结构及其 API 定义说明。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值