STM32通过串口如何接收服务器发来的数据

发布者:SerendipityJoy最新更新时间:2020-04-23 来源: eefocus关键字:STM32  串口  接收  数据 手机看文章 扫描二维码
随时随地手机看文章

STM32通过串口如何接收服务器发来的数据代码如下:


//在stm32f10x_it.c中的代码

void USART1_IRQHandler(void)

{  

  u8 GetData;

  if(USART_GetITStatus(USART1, USART_IT_RXNE)!=RESET)

  {

    USART_ClearITPendingBit(USART1,USART_IT_RXNE);

    GetData=(u8)USART_ReceiveData(USART1)&0xff;

 

    Usart1_buf[usart1_lent]=GetData;

    usart1_lent++;

  }

 

  if (USART_GetITStatus(USART1, USART_IT_TC) != RESET) 

  {

    USART_ITConfig(USART1, USART_IT_TC, DISABLE);

    USART_ClearITPendingBit(USART1, USART_IT_TC);

  }

  if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)

  {

    USART_ClearFlag(USART1,USART_FLAG_ORE); 

    USART_ReceiveData(USART1); 

  }   

}

 

//main()函数中的代码

//服务器发来的数据放在Usart1_buf数组中

u8 Usart1_buf[256];

unsigned int usart1_lent = 0;

void check_ser(void) 

{

      a = strstr(Usart1_buf, "1");

      b = strstr(Usart1_buf, "12");

      c = strstr(Usart1_buf, "123");

      d = strstr(Usart1_buf,"1234");

      

      if(NULL != a && usart1_lent==1)//当服务器发来1时干某事

      {

       

      }

      else if(NULL != b && usart1_lent==2)//当服务器发来12时干某事

      {

        

      }

      else if(NULL != c && usart1_lent==3)//当服务器发来123时干某事

      { 

        

      }

      else if(NULL != d && usart1_lent==4)//当服务器发来1234时干某事

      {

        

      }

      else if(Usart1_buf[0]=='['&&Usart1_buf[17]==']'&& usart1_lent==18)//判断是否为获取时间参数

      {

       

      }

      else if (Usart1_buf[0]=='O'&&Usart1_buf[1]=='K' && usart1_lent==2)//判断是否为普通心跳返回

      {

        

      }

}

关键字:STM32  串口  接收  数据 引用地址:STM32通过串口如何接收服务器发来的数据

上一篇:STM32 串行通讯(part1)
下一篇:STM32CubeMX系列教程5:串行通信(USART)

推荐阅读最新更新时间:2024-11-11 17:52

单片机串口程序模板
#include reg52.h void main() { SCON = 0x50;//方式1( SM0 SM1:0 1)串行口位10位通用异步接口。发送或接收一帧数据信息为10位,包括1位起始位 0 、8位数据位、1位停止位 1 。 TMOD=0X20; //设置计时器工作模式2并装值开启 TH1=0XFD; TL1=0XFD; TR1=1; EA=1; //打开总中断 ES=1; //打开串口中断 //while(1); } void write() interrupt 4 { if(RI==1)// 发送结束标志 { RI=0; //重新置0,以便下次发送 P0=SBUF; //发送到P0口 }
[单片机]
单片机C语言C51的数据类型
C51的数据类型分为基本数据类型和组合数据类型,情况与标准C中的数据类型基本相同,但其中char型与short型相同,float型与double型相同,另外,C51中还有专门针对于51单片机的特殊功能寄存器型和位类型。 一.字符型char 有signed char和unsigned char之分,默认为signed char。它们的长度均为一个字节,用于存放一个单字节的数据。 对于signed char,它用于定义带符号字节数据,其字节的最高位为符号位,“0”表示正数,“1”表示负数,补码表示,所能表示的数值范围是-128~+127; 对于unsigned char,它用于定义无符号字节数据或字符,可以存放一个字节
[单片机]
单片机C语言C51的<font color='red'>数据</font>类型
基于STM32的USB枚举过程学习笔记(五)
接下来,主机将使用新的设备地址和设备进行通信。 主机需要再次获取设备描述符,配置描述符,字符串描述符,另外HID设备还要获取报告描述符等。根据《圈圈教你玩USB》里面介绍,我们可以使用BUS Hound工具,对主机发送给设备的数据进行抓包,分析数据包,根据USB协议完成相应的主机的请求。 在STM32 USB_HID的例子中,和以上获取描述符相关的主要文件有Usb_desc.c(定义了各种描述符),Usb_prop.c (其中的CustomHID_GetStringDescriptor函数完成了对主机获取字符串描述符种类的细分)。具体的内容可以自己根据调试信息按照之前几篇文章中介绍的分析方法分析。
[单片机]
STM32库函数开发工程模板
看了好多资料,自己也亲手写了好多程序,发现虽然都是库函数开发,但是对于文件的组织是不一样的,比如有的人喜欢有OBJ,而有的人用LISTING,那么到底怎么样好,关于文件的组织形式也真是够让人头疼的,总感觉是被别人牵着鼻子走,不像之前学习51单片机或者MSP430单片机,那时候是操作寄存器的,更加的直观。现在感觉开发好困难,单单一个工程模板都搞不定,只能照抄别人的。 我个人觉得使用一下的组织方式还是很不错的的。 USER FWlib STARTUP MY OBJ 其中USER放主函数,MY放子函数文件比如LED.C,而在MY文件夹下新建一个inc文件,专门用于存放头文件,比如一个led.c文件就对应于一个
[单片机]
PIC16F877A串口发送字符串问题
PIC16F877A串口发送,查询方式,就为了调出这个费了我一天时间,原来是串口芯片电压问题,现总结如下: 1、注意232串口芯片供电电压,有5V和3.3V的 2、注意TXD、RXD接线,单片机的TXD接232芯片的R2OUT,单片机的RXD接232芯片的T2IN 3、注意ESP8266的UTXD接MCU的RX,URXD接MCU的TX 4、注意ESP8266的UTXD接232的T2IN,URXD接232的R2OUT 5、串口波特率设置成9600 6、注意连接线的可靠性,如果用线连的话一定要检查线和插座是否稳定连接 PIC16F877A串口发送 //以下是串口发送程序 #include #define ucharunsigned
[单片机]
STM32F103单片机使用DMA功能读取ADC采样数据
使用DMA功能操作外设时,可以极大的简化代码,提高程序的执行效率。特别是在需要频繁操作的外设上。比如现在要采集单片机16个ADC通道的电压值,就可以使用DMA功能,直接将ADC通道转换好的值,传输到数组中。需要操纵ADC的值时,直接去数组中拿数据就行。不需要再去判断ADC数据转换是否结束。下面直接通过代码来实现。 首先初始化ADC,这里将ADC的16个采样通道全部开启。 void ADC1_Init ( void ) { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphCloc
[单片机]
浅谈STM32最小系统的基本组成
经常使用STM32开发的工程师对于它的开发环境的最小系统是必须要有所了解的,特别是硬件工程师在设计硬件的时候对这个最小系统就要更加的深入了解了,如果最小系统的搭建都有问题,那以后的使用很难避免不出现问题。 话不多说,进入正题说说STM32的最小系统的基本组成! 1、STM32最小系统硬件组成包括哪些? STM32的最小系统的硬件组成主要有:电源电路、复位电路、时钟电路、调试接口电路、启动电路。 电源 : 一般是3.3V输入作为STM32芯片的工作电压,实际中很多采用LDO将5V转换为3.3V进行供电,另外电路上还要加多个0.01uf去耦电容对输入电压进行滤波,稳定输入电压。 复位:STM32中有三种复位方式,分别为:上电复
[单片机]
浅谈<font color='red'>STM32</font>最小系统的基本组成
工程师STM32单片机学习基础手记(4):用PWM实现荧火虫灯(六)
     DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;   DMA_InitStructure.DMA_Priority = DMA_Priority_High;   DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;   以下是stm32f10x_dma.c中有关DMA的初始化设置代码   tmpreg |= DMA_InitStruct-》DMA_DIR | DMA_InitStruct-》DMA_Mode |   DMA_InitStruct-》DMA_PeripheralInc | DMA_InitStruct-》DMA
[模拟电子]
工程师<font color='red'>STM32</font>单片机学习基础手记(4):用PWM实现荧火虫灯(六)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved