void Delay(vu32 i)
{
u32 k;
for(k=0;k<i;k++)
{}
}
for(sd_size=0;sd_size<512;sd_size++)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
temp=buf[sd_size];
USART_SendData(USART1,temp);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
USART_ClearFlag(USART1,USART_FLAG_TXE);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
Delay(400);
GPIO_SetBits(GPIOA,GPIO_Pin_3);
Delay(400);
}
做一个从串口循环发送数据的程序,有个很奇怪的问题,就是必须在每次发送后增加一段延时程序,否则单片机会出现死机现象。不知道是为什么呢,请高手们指点呢。谢谢了。我就是在发送后增加了两次Delay(400),否则开机就会死机。 |