蓝桥杯嵌入式——串口

CUBE里配置成异步模式,设置波特率,打开中断(先配置LCD再配置串口):

 

串口发送

main.c

#include "string.h"
char temp[20];
sprintf(temp,"Hello World\r\n");
HAL_UART_Transmit(&huart1,(uint8_t *)temp,strlen(temp),50);

串口接收

interrupt.c

#include "usart.h"
char rxdata[30];
uint8_t rxdat;
uint8_t rx_index;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{rxdata[rx_index++] = rxdat;HAL_UART_Receive_IT(&huart1, &rxdat, 1);
}

main.c

extern char rxdata[30];
extern uint8_t rxdat;
extern uint8_t rx_index;char car_type[5];
char car_data[5];
char car_time[13];

 注:sscanf()里的1s不能去掉,1代表数据的长度为1

void Uart_RX_Pro(void)
{if(rx_index > 0){if(rx_index == 5){sscanf(rxdata,"%1s:%1s:%1s",car_type,car_data,car_time);//1s中的1不能去掉,因为此处演示的数为1:2:3}else{char temp[20];sprintf(temp,"Error");HAL_UART_Transmit(&huart1,(uint8_t *)temp,strlen(temp),50);}rx_index = 0;memset(rxdata,0,30);}
}
HAL_UART_Receive_IT(&huart1, &rxdat, 1);//初始化运行时需要进去一次
if(rx_index > 0)
{int temp = rx_index;HAL_Delay(1);if(temp == rx_index)Uart_RX_Pro();
}
char text[30];
sprintf(text,"car_type = %s   ",car_type);
LCD_DisplayStringLine(Line0, (u8 *)text);
sprintf(text,"car_dat = %s   ",car_data);
LCD_DisplayStringLine(Line4, (u8 *)text);
sprintf(text,"car_time = %s   ",car_time);
LCD_DisplayStringLine(Line9, (u8 *)text);

串口接收最终实现功能:串口发送a:b:c时屏幕会显示对应的数字,若不是这5个字符串口则会接收到Error。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/286321.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FO with Prefix Hashing KEM Generalizations

参考文献: [Has88] Hastad J. Solving simultaneous modular equations of low degree[J]. siam Journal on Computing, 1988, 17(2): 336-341.[BBM00] Bellare M, Boldyreva A, Micali S. Public-key encryption in a multi-user setting: Security proofs and im…

Linux命令行实战指南:快速上手常用命令大全!

Linux 常见目录说明 /bin:存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;/sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等&#xff…

【Apache-StreamPark】Flink 开发利器 StreamPark 的介绍、安装、使用

【Apache-StreamPark】Flink 开发利器 StreamPark 的介绍、安装、使用 1)框架介绍与引入1.1.🚀 什么是 StreamPark1.2.🎉 Features1.3.🏳‍🌈 组成部分1.4.引入 StreamPark 2)安装部署2.1.环境要求2.2.Hado…

Java代码解析:初学者的编程入门指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 Java作为一门强大而广泛应用的编程语言&#x…

2023年12月最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况,在这过程中要展现出自信,对工作有激情,上进,好学) 面试官您好,我叫###,今年26岁,来自江西九江,就读专业是电子商务,毕…

Axure之交互与情节与一些实例

目录 一.交互与情节简介 二.ERP登录页到主页的跳转 三.ERP的菜单跳转到各个页面的跳转 四.省市联动 五.手机下拉加载 今天就到这里了,希望帮到你哦!!! 一.交互与情节简介 "交互"通常指的是人与人、人与计算机或物体…

SecureCRT for Mac/win强大安全的终端SSH工具,SecureCRT助您网络连接无忧

在当今数字化时代,网络连接已成为生活和工作中不可或缺的一部分。而对于需要进行远程访问和管理的用户来说,一个稳定、安全的终端SSH工具是至关重要的。SecureCRT作为一款强大的终端SSH工具,为用户提供了安全、高效的远程连接解决方案。 首先…

内网离线搭建之----nginx高可用

1.系统版本 虚拟机192.168.9.184 虚拟机192.168.9.185 2.nginx以及依赖下载地址 nginx:nginx: download pcre:PCRE - Browse /pcre/8.45 at SourceForge.net zlib:zlib Home Site 基本都在置顶的资源里 3.检查环境安装依赖的依赖&#xf…

记录一次云服务器被攻击事件

今天去登录华为云平台的时候,发现服务器的cpu涨到了百分之九十九,这个也太不正常了,我自己就只部署了一个页面,怎么会飚这么高呢? 然后,我就去找原因,使用top命令,去查看到底是谁占用…

JAVA分库分表

1.1为什么需要分库分表 随着平台的发展,平台的数据会越来越多。当表中的数据量过多时,数据库的性能会下降严重,很有可能会把系统给拖垮。类似于分而治之的思想,将大的问题拆分成小的问题,从而提高效率。通过将数据分散…

基于STM32,TB6612,TCRT5000的简易红外循迹小车

提醒:本文章只叙述此小车相关大概内容(如模块的设置,C语言基础实现等),单片机详细教学不涉及。 摘要 循迹小车是学习单片机的“地基”,它能够让初学者认识单片机内部硬件结构及其功能,熟悉单片机…

Python 面向对象(1)

软件编程的实质是将我们的思维转变成计算机能够识别语言的一个过程。 目录 面向过程 面向对象 理解面向对象 面向过程: 面向对象: 面向对象的特点 完成需求时: 类的设计 类与对象的关系 创建类 设计类 类的介绍 格式 创建类实例…