初级会员

- 积分
- 147
- 金钱
- 147
- 注册时间
- 2017-4-28
- 在线时间
- 44 小时
|
1金钱
485 用中断发送,正常运行的时候,会丢数据。但是单步运行的话,输出数据是正常的,在发送中断加点延时,发送也是正常的。 这是什么情况?大佬又知道的没有,
中断代码是这样的:
void UART4_IRQHandler(void)
{
if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)
{
if(uart4_recv_struct.data_size<UART4_RECV_SIZE)
{
uart4_recv_struct.buf[uart4_recv_struct.buf_write]=UART4->DR;
uart4_recv_struct.buf_write=( uart4_recv_struct.buf_write+1)%UART4_RECV_SIZE;
uart4_recv_struct.data_size++;
}
}
if(USART_GetITStatus(UART4, USART_IT_TC) != RESET)
{
if(uart4_sent_struct.data_size>0)
{
UART4->DR=uart4_sent_struct.buf[uart4_sent_struct.buf_read];
uart4_sent_struct.buf_read=(uart4_sent_struct.buf_read+1)%UART4_SENT_SIZE;
uart4_sent_struct.data_size--;
}else
USART_ITConfig(UART4, USART_IT_TC, DISABLE);
}else
{
USART_ITConfig(UART4, USART_IT_TC, DISABLE);
USART_ITConfig(UART4, USART_IT_RXNE, DISABLE);
}
}
|
最佳答案
查看完整内容[请看2#楼]
虚惊一场 !!串口调试助手的问题!! 用的原子的那个调试助手。接收就有问题。 换成 sscon 调试助手就接收到了!!
|