初级会员

- 积分
- 172
- 金钱
- 172
- 注册时间
- 2016-5-9
- 在线时间
- 22 小时
|

楼主 |
发表于 2016-6-5 15:51:18
|
显示全部楼层
void MyUsart_Init()
{
.......................//前面的和原子哥写的一样
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); //设置中断标志RXNE
delay_ms(50000);
USART_ITConfig(USART1, USART_IT_TC,ENABLE); //设置标志TC
USART_ClearFlag(USART1,USART_FLAG_TC);//中断完成后清除TC
}
void USART1_IRQHandler()
{
u8 res;
if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==1)//串口发送数据
{
res=USART_ReceiveData(USART1);
USART_SendData(USART1,res);
}
if(USART_GetFlagStatus(USART1,USART_FLAG_TC)==1)//如果发送完成。则发生中断 并且蜂鸣器响
{
GPIO_SetBits(GPIOB,GPIO_Pin_8);
delay_ms(100);
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
}
}
int main(void) //主函数
{
beep_Init();
delay_init();
delay_ms(5000);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //
MyUsart_Init();
while(1);
}
我就是想当数据接收完成的时候,把它发送出去,发送完成后,TC置1的蜂鸣器响一下,然后清楚TC,再发送下一个数据,就这么一个简单的过程。。。这个函数我快写了一天了,每次把程序直接输进去,蜂鸣器就一直响,实在不知道错在哪,求指点啊,,困扰一天了。。。。 |
|