博士
最后登录1970-1-1
在线时间 小时
注册时间2014-12-16
|
发表于 2016-4-24 00:06:18
|
显示全部楼层
可以利用STM32串口间隔中断来做数结尾。
- //若总线空闲,产生中断
- USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);
- u8 DATA[255];
- u8 num = 0;
- void USART1_IRQHandler(void)
- {
- if(USART_GetITStatus( USART1, USART_IT_RXNE) != RESET)
- {
- DATA[num++] = USART_ReceiveData( USART1);
- }
- if(USART_GetITStatus(USART1, USART_IT_IDLE) != RESET)//如果为空闲总线中断
- {
- DMA_Cmd(DMA1_Channel5, DISABLE);//关闭DMA,防止处理其间有数据
- num = 0;
- //处理串口数据
-
- }
-
- }
复制代码 |
|