完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void USART2_IRQHandler(void)
{ u8 res; if(USART_GetFlagStatus(USART2, USART_IT_RXNE) != RESET) { res = USART_ReceiveData(USART2); if((USART2_RX_STA & (1<<15)) == 0) { if(USART2_RX_STA < USART2_MAX_RECV_LEN) { tiM_SetCounter(TIM8, 0); if(USART2_RX_STA == 0) { TIM8_Set(1); } USART2_RX_BUF[USART2_RX_STA++] = res; } else { USART2_RX_STA |= 1<<15; } } } } 这段代码里在接收到中断信息 USART_GetFlagStatus(USART2, USART_IT_RXNE) != RESET 为什么不需要加上 USART_ClearITPendingBit(USART2,USART_IT_RXNE); //清除中断标志 清除中断位? 另外USART串口每次接受数据只是接受一位数据?如果我发送了4位数据那么RX端是不是要产生4次中断? |
|
相关推荐
1个回答
|
|
因为读DR就自动清标记了。 至于串口接收,就是一个字节一次中断的。如果想省事,用DMA接收吧
|
|
|
|
只有小组成员才能发言,加入小组>>
107浏览 1评论
184浏览 1评论
323浏览 1评论
用PSOC6 BLE当外围设备,两者传输数据时,psoc6概率性出现蓝牙挂死的原因?
235浏览 1评论
是否有办法通过CYW20835板的固件发送BLE HCI命令?
207浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-8 09:25 , Processed in 0.802227 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号