stm32串口接收数据程序

发布时间:2024-09-11  

void init_usart(void)

//RCC初始化

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,,ENABLE);//使能GPIOA时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);

//nvic

NVIC_ InitTypeDef NVIC_InitStructure;#ifdef VECT_TAB_RAM

NVIC_SetVectorTable(NVIC_VectTab_RAM,Ox0);#else

NVIC_SetVectorTable(NVIC_VectTab_FLASH,Ox0);#endif

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;NVIC_InitStructure.NVIC_IRQChannelSubPriority = o;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_lnitStructure);

//GPIO初始化

GPIO_IlnitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_IlnitStructure.GPIO_Speed = GPIO_Speed_5OMHz;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_5OMHz;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;

GPIO_Init(GPIOA,&GPIO_InitStructure);

//USART初始

//USART_DeInit(USART2);

USART_InitTypeDef USART_InitStructure;

//串口设置恢复默认参数

USART_ClockInitTypeDef USART_ClocklnitStructure;

USART_InitStructure.USART_BaudRate = 9600;

//波特率9600

USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长8位USART_InitStructure.USART_StopBits = USART_StopBits_1;

//1位停止字节

USART_InitStructure.USART_Parity = USART_Parity_No;

川/无奇偶校验

USART_IlnitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无流控制

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//打开Rx接收和Tx发送功能

USART_ClockInitStructure.USART_Clock =USART_Clock_Disable;USART_ClockInitStructure.USART_CPOL =USART_CPOL_High;USART_ClockInitStructure.USART_CPHA =USART_CPHA_2Edge;USART_ClocklnitStructure.USART_LastBit =USART_LastBit_Disable;USART_Clocklnit(USART2,&USART_ClockInitStructure);

USART_Init(USART2,&USART_InitStructure);

//初始化

USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//开启接收中断,这个必须在打开串口之前设置USART_Cmd(USART2,ENABLE);

/启动串口

void USART2_IRQHandler(void)

//接收中断

if(USART_GetlTStatus(USART2,USART_IT_RXNE)==SET)(

USART_ClearlTPendingBit(USART2,USART_IT_RXNE);usart_rx=USART_ReceiveData(USART2);

usart_rx_flag=1;

}

//溢出-如果发生溢出需要先读SR,再读DR寄存器则可清除不断入中断的问题[牛人说要这样]if(USART_GetFlagStatus(USART2,USART_FLAG_ORE)==SET)

USART_ClearFlag(USART2,USART_FLAG_ORE);//读SR其实就是清除标志USART_ReceiveData(USART2);//读DR

}

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    ;     }     }   else     USART1- >SR = 0; } 主函数通过判断接收中断存储串口中断缓冲区数据到W25Q64。并判断接收数据是否超时作为文件接收完成的标志。接收完成后将保存到W25Q64......
    STM32单片机串口接收数据的方法;串口作为单片机开发的一个常用的外设,应用范围非常广。大部分时候,串口需要接收处理的数据长度是不定的。那么怎么才能判断一帧数据是否结束呢,今天就以STM32单片......
    串口如何接收数据 STM32串口接收数据;如果采用查询接收方式接受串口数据,就会造成接收不及时,还没接收完数据,下一个数据就发过来了,就会把上一个数据覆盖了,造成数据丢失。所以可以通过中断去接收数据......
    上位机串口中发过来的数据了。可以按照以下步骤进行:2.1 编写串口接收数据的代码```uint8_t uart_rx_data; // 定义接收数据的变量void......
    IDLE中断吧。 这是串口CR1寄存器,其中,对bit4写1开启IDLE中断,对bit5写1开启接收数据中断。(注意:不同系列的STM32,对应的寄存器位可能不同) (RXNE中断......
    传输到TX引脚。 数据移位完成后,新的数据就会再次从TDR转移到发送移位寄存器里来,依次重复1-3的过程。通过读取TXE标志位来判断是否发送下一个数据串口接收 数据从RX引脚通向接收移位寄存器,在接收......
    入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据STM32中硬件流控配置 Ⅳ 我们配置串口时,有如下一段配置代码: USART_InitTypeDef......
    stm32串口dma发送/接收程序;  串口可以配置成用DMA的方式接收数据,不过DMA需要定长才能产生接收中断,如何接收可变长度的数据呢?   方法有以下3种:   1.将RX脚与......
    RECEIVE_DATA Receive_Data; //The serial port receives the data structure //串口接收数据结构体 SEND_DATA Send_Data......
    stm32怎么读取串口发来的指令;读取串口发来的指令是嵌入式系统中一项常见的任务,特别是在与外部设备进行通信时。在STM32系列微控制器中,提供了多个串口接口(USART、UART等),可以用于读取和处理串口接收到的数据......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>