stm32串口接收数据放入数组
时间: 2023-09-28 17:07:11 浏览: 392
stm32f103串口接收数据后发送数组的数据
在STM32中,可以通过串口接收中断来将数据存储到数组中。一个示例代码如下所示:
```c
#define Max_BUFF_Len 18
unsigned char Uart2_Buffer = USART_ReceiveData(USART2); // 接收串口1数据到buff缓冲区
Uart2_Rx++;
if(Uart2_Buffer[Uart2_Rx-1 == 0x0a || Uart2_Rx == Max_BUFF_Len) { // 如果接收到尾标识是换行符(或者等于最大接受数就清空重新接收)
if(Uart2_Buffer == ' ') { // 检测到头标识是我们需要的
printf("%s\r\n",Uart2_Buffer); // 这里我做打印数据处理
Uart2_Rx=0;
} else {
Uart2_Rx=0; // 不是我们需要的数据或者达到最大接收数则开始重新接收
}
}
}
}
```
在上述代码中,我们定义了一个长度为Max_BUFF_Len的数组Uart2_Buffer来存储接收到的串口数据。在USART2_IRQHandler中断服务函数中,每当接收到一个字符时,我们将其存储到数组中,并对接收到的数据进行处理。当检测到接收到的数据包含头标识和尾标识时,我们进行打印数据处理。如果不是我们需要的数据或者达到最大接收数,我们将重新开始接收。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [STM32串口发送数据和接收数据方式总结](https://blog.csdn.net/qq_35281599/article/details/80299770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文