串口收发字符串

本文介绍了一种使用STM32处理串口接收字符串指令的方法,包括解析和响应特定指令,如ST和PARE。通过中断服务函数实现串口数据接收,并使用printf重定向发送字符串。程序中涉及串口配置、字符串比较和数据发送,适用于蓝桥杯竞赛环境或其他串口通信场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备蓝桥杯国赛的时候刷到往届真题,其中有一个使用串口来接收字符串指令的要求。当时没写出来,就把它单独拎出来解决。写了一两天终于是写出了一个简短易懂的程序。

拟定题目要求

*使用串口收发数据。接收两个指令:指令一:ST\r\n,指令二:PARE\r\n
当串口接收到指令一则回复当前DS18B20的温度值(小数点后保留两位)和超声波距离值。格式:$距离值,温度值\r\n.
接收到指令二回复当前设置的温度参数和距离参数,格式:#距离参数,温度参数\r\n.

51串口的配置啥的我就不说了,重点讲解如何处理接受的字符串,以及如何发送字符串数据。

串口发送字符串

#include“stc15f2k60s2.h”
#include<stdio.h>
//一个串口发送数据的函数,把数据给SBUF等待发送完成即可。
void SendDat(unsigned char data)
{
   
	SBUF=data;
	while(TI==0);          
	TI=0;
}

//因为回传数据,建议使用printf函数,毕竟简单又实用,不用白不用。
//要想让printf打印数据给串口,需要改变它打印的方向,即重定向
//printf打印数据调用的是c库函数putchar
char putchar(char ch)
{
   
	 SendDat(ch);//打印数据到SBUF
	 return ch;
}

对接收字符指令进行处理

void Usart() interrupt 4
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值