当我接收到一个数据之后,下面的程序就开始发送hello word然后一直发一直发,停不下来。
考虑过用下面的两个函数,但是不是很懂,还请各位大佬指教一下。
USART_ClearITPendingBit()
USART_ClearFlag()
void USART1_IRQHandler(void)
{
u8 d;
static unsigned char display[]="hello word";
if(USART_GetITStatus(USART1,USART_IT_RXNE))
{
for(d=0;d<sizeof(display);d++)
{
USART_SendData(USART1,display[d]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)!=SET);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
问题已经解决了,当时其实程序都写对了。。。当时接收到数据之后,发送了两个hello word然后我以为有问题,就一直改,结果是我的串口助手没调好,以文本形式发送。。。。。
那用哪个函数去清除中断呢?USART_ClearITPendingBit吗?
d是局部变量没关系啊,我只要执行完for就好了啊,然后下次进入中断又重新赋值啊,数组是静态变量,所以和d无关吧
这个我也知道。。。。但是,假如说我要立即发送这个东西呢,就是说一接收到就立马返回一个值
一周热门 更多>