STM32串口屏学习

前言

高情已逐晓云空,不与梨花同梦。


一、 串口屏端

  • 初始化

    baud=115200		//115200是串口通信的波特率,可以自己随意设置
    
  • 按键

    printh 01		//发送十六位进制数0x01
    
  • 页面切换

    page pagex		//跳转到页面pagex,pagex是页面的名称
    

二、单片机端

  • 文本显示

    printf("t2.txt=\"%u Hz\"\xff\xff\xff",FQ);	//显示频率
    
  • 通道数:可以在一个图形中显示多少个波形;

  • 像素点:2 * 2个方格点、100 * 100个方格点,

  • 波形显示

    printf("add 1,0,%d\xff\xff\xff",30);	//向ID为1的曲线控件的0通道添加数据30
    
  • 判断接收到的数据

    switch(Rec)
    {
    	case 0x01:
    	{
    		LED=0;	//关灯
    	}break;
    	case 0x02:
    	{
    		LED=1;	//开灯
    	}break;
    }
    

三、代码部分

/* USER CODE BEGIN Includes */
#include <stdio.h>
#include "stdarg.h"
#include "math.h"

#define CONSOLEBUF_SIZE 256

static char Uart_buf[CONSOLEBUF_SIZE];

void PrintfDebugUart(const char *fmt, ...)
{
	va_list args;
	va_start(args, fmt);
	int length = vsnprintf(Uart_buf, sizeof(Uart_buf) - 1, fmt, args);
	va_end(args);
	
	HAL_UART_Transmit(&huart1, (uint8_t *)&Uart_buf, length, 0xffff);
}
/* USER CODE END Includes */
/* USER CODE BEGIN 0 */

uint8_t RX;
uint16_t FQ = 1000;
uint8_t a[200];

/* USER CODE END 0 */
  /* USER CODE BEGIN 2 */
	
	//串口中断接收一位数据
	HAL_UART_Receive_IT(&huart1,(uint8_t *)&RX,1);
	for(uint8_t i=0; i<200; i++)
	{
		a[i] = (sin(2 * 3.141596254 * i / 200) + 1) * 1.0 * 100 / 2;
	}
	
  /* USER CODE END 2 */
/* USER CODE BEGIN 4 */
//书写串口中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart == &huart1)
	{
		switch(RX)
		{
			case 0x01:
			{
				HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
				PrintfDebugUart("t1.txt=\"%d Hz\"\xff\xff\xff",FQ);	//显示频率
				for(uint8_t i=0; i<200; i++)
				{
					PrintfDebugUart("add 7,0,%d\xff\xff\xff",a[i]);	//向ID为7的曲线控件的0通道添加数据30
				}
			}
			break;
			case 0x02:
			{
				HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);
			}
			break;
		}
		HAL_UART_Receive_IT(&huart1,(uint8_t *)&RX,1);
	}
}
/* USER CODE END 4 */

四、实验结果

在这里插入图片描述

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W_oilpicture

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值