stm32 对于串口数据流的处理

本文探讨了在STM32微控制器中如何处理串口接收的数据流,特别是如何有效地截取并处理所需的特定字符串。针对STM32的串口编程,文章可能涉及硬件接口设置、字符流过滤及数据解析等方面。
摘要由CSDN通过智能技术生成

串口编程问题:

   当来的数据是一个字符流的时候,截取需要的一串字符的处理 (stm32):

#include "bsp_usart.h"


uint8_t RxBuffer1[COM1_Rx_length]={0};
uint8_t RxBuffer2[COM2_Rx_length]={0};
uint8_t TxBuffer1[COM1_Tx_length]={0}; 
uint8_t TxBuffer2[COM2_Tx_length]={0};

extern uint8_t flag;									   
USART_TypeDef COM1,COM2;	//bsp_usart.c中的全局变量,在stm32f10x.h的结构体定义中增加了两个变量UsartRecvBufReadIndex UsartRecvBufWriteIndex;

/***************************************************************************************************
*\Function      Usart_GPIO_config
*\Description   配置函数
*\Parameter     void
*\Return        void
*\Note          
*\Log           2014.05.28    Ver 1.0    
*               创建函数。
***************************************************************************************************/
void Usart_GPIO_config()
{

	/*
	USART2 
	TXD2----- PA2-US2-TX
	RXD2----- PA3-US2-RX

	USART1
	PA9   --tx
	PA10  --rx


	速率:9600,n,8,1 
	*/
	GPIO_InitTypeDef GPIO_Structure;
	GPIO_Structure.GPIO_Speed = GPIO_Speed_50MHz; 
	//   GPIO_Structure.GPIO_Pin=GPIO_Pin_9;
	//	 GPIO_Structure.GPIO_Mode=GPIO_Mode_AF_PP;
	//	 GPIO_Init(GPIOA,&GPIO_Structure);

	//	 GPIO_Structure.GPIO_Pin=GPIO_Pin_10;
	//	 GPIO_Structure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
	//	 GPIO_Init(GPIOA,&GPIO_Structure);

	GPIO_Structure.GPIO_Pin=GPIO_Pin_3;
	GPIO_Structure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
	GPIO_Init(GPIOA,&GPIO_Structure);

	GPIO_Structure.GPIO_Pin=GPIO_Pin_2;
	GPIO_Structure.GPIO_Mode=GPIO_Mode_AF_PP;;
	GPIO_Init(GPIOA,&GPIO_Structure);



}
/***************************************************************************************************
*\Function      void Usart_Initlocal(int8_t port)
*\Description   Usart 时钟使能
*\Parameter     port 使能端口 (1或2)
*\Return        void
*\Note          
*\Log          	2014年7月4日
*               创建函数。
***************************************************************************************************/
void Usart_RCC_Initlocal(int8_t port)
{
	if(port==1)		  
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);	 
	if(port==2)
		RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2,ENABLE);

}
/*************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值