我的stm32学习——串口屏的使用

一、前言

本来打算来学校前写这篇博客,拖拖拉拉拖到现在,开学都3天了,终于在星期四的凌晨敲下了这一行字,本篇博客记录开发串口屏的心得,望大佬指点。

我买的是3.2寸的陶晶驰串口屏,其分辨率为400*240。

二、USART HMI上位软件

在B站上找资料看到这个视频https://www.bilibili.com/video/BV1q7411V735?from=search&seid=3137142294977240657,对该软件的使用有着清晰的阐述,我就不班门弄斧了。

在这里我提一下print指令的用法,下图为该指令的实例:

我常用返回常量字符串,注意加引号。

还有串口屏默认的波特率为9600,在初始化单片机的串口时要注意到这一点。同时需要一个usb转ttl串口模块调试。

三、stm32串口通信程序(串口二PA2、PA3)

串口屏,顾名思义是可以串口通信的,故stm32一端程序为串口通信程序如下:

#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "usart2.h"
#include "timer.h" 

 int main(void)
 {		
	  int pro2[4];
		u16 t;  
		u16 len;
		delay_init();	    	
		NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
		uart_init(115200);	
		usart2_init(9600);	 
		while(1)
		{
			if(USART2_RX_STA&0x8000)
			{					   
				len=USART2_RX_STA&0x3fff;
				printf("\r\n你发送的消息为:\r\n\r\n");
				for(t=0;t<len;t++)
				{
					USART_SendData(USART1, USART2_RX_BUF[t]);
					while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
				}
				printf("\r\n\r\n");
				USART2_RX_STA=0;
			}
			delay_ms(50);
		}	 
}

四、总结

串口屏资料及程序源码我都放在下面的百度网盘里了,有需要的自取:

链接:https://pan.baidu.com/s/1H0DSXTD5LFFjogW5uRcxRw 
提取码:ar47

  • 20
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是基于STM32F103和AS608指纹模块的串口打印代码示例: ``` #include "stm32f10x.h" #include "stdio.h" #include "string.h" #include "usart.h" #include "as608.h" //AS608指纹模块驱动库 char uart_buf[50]; //定义串口接收缓存 int main(void) { USART_Config(); //配置串口 AS608_Init(); //初始化AS608指纹模块 while (1) { if (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == SET) //判断是否有串口数据接收 { char c = USART_ReceiveData(USART1); //读取串口数据 if (c == '\n') //判断是否接收到换行符 { uart_buf[strlen(uart_buf) - 1] = '\0'; //将换行符替换为字符串结束符 printf("Received command: %s\r\n", uart_buf); //打印接收到的命令 memset(uart_buf, 0, sizeof(uart_buf)); //清空缓存 } else { strncat(uart_buf, &c, 1); //将接收到的字符添加到缓存中 } } if (AS608_ReceivePacket()) //判断是否接收到AS608指纹模块的数据包 { printf("Received packet: "); for (int i = 0; i < AS608.packet_len; i++) //打印数据包内容 { printf("%02x ", AS608.packet[i]); } printf("\r\n"); } } } ``` 在上述代码中,首先调用`USART_Config()`和`AS608_Init()`函数分别初始化串口和AS608指纹模块。然后在主循环中,不断检测串口是否接收到数据,并将接收到的数据添加到缓存中。当检测到换行符时,打印接收到的命令并清空缓存。同时,检测是否接收到AS608指纹模块的数据包,如果接收到,则打印数据包的内容。使用该代码,可以方便地调试和测试AS608指纹模块的功能。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值