网站首页 > 技术文章 正文
1.通过串口不断发送数据
库函数中的
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
函数不具备缓存作用,当我们需要连续不断发送一段数据时,我们需要等待前一次数据发送完成,放置数据丢失错误
void usart2_send_char(u8 _char){ /* 等待上一次发送完成*/
while( !(USART2->SR & (1 << USART2_SR_TC) )) ;
USART2->DR = _char ;
}
2.通过中断接受数据
通过中断中断接受数据时我们可以通过读取数据寄存器中的值使硬件自动清除挂起的接收中断标志位,为了防止其他外设功能的错误,我们应该对每一个中断都养成手动清除中断标志位的习惯。
void USART2_IRQHandler(void) {
u8 rec ;
if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) { rec = USART_ReceiveData(USART2) ; usart2_send_char(rec) ;
USART_ClearITPendingBit(USART2 , USART_IT_RXNE); }
}
同时,使用串口调试助手时应该注意发送区的\r\n(即换行),因为这个是不可见但是是有效的发送数据。
猜你喜欢
- 2024-10-12 STM32单片机-多串口printf()问题与ASCII码解析
- 2024-10-12 stm32F0 串口的几个特殊功能 stm32f1串口引脚
- 2024-10-12 STM32串口发送用哪个中断? stm32f4串口发送数据
- 2024-10-12 STM32F103编程学习——USB虚拟串口篇
- 2024-10-12 STM32F4入坑日记——串口发送数据(非中断)
- 2024-10-12 STM32 HAL库串口中断发送过程 stm32f4串口中断
- 2024-10-12 在货物监控设备研发时,STM32串口第一个字节丢失解怎么解决?
- 2024-10-12 STM32单片机采用环形缓冲区实现串口中断数据接收管理
- 2024-10-12 基于STM32的串口与DMA的完美组合(上)
- 2024-10-12 STM32下载程序新思路--使用串口下载STM32程序
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)