中级会员
 
- 积分
- 219
- 金钱
- 219
- 注册时间
- 2015-3-2
- 在线时间
- 36 小时
|
5金钱
这是串口中断服务函数 res为接收数据的变量,flag为标志位
void USART1_IRQHandler(void)
{
if(USART1->SR&(1<<5))
{
res=USART1->DR;
flag=1;
}
}
然后main函数里程序为
int main(void)
{
u16 t;
u16 len;
Stm32_Clock_Init(9);
delay_init(72);
LED_Init();
uart_init(72,9600);
while(1)
{
if(flag)
{
USART1->DR=res;
while((USART1->SR&0X40)==0);
flag=0;
}
else
{
GPIOB->ODR&=0xffdf;
GPIOE->ODR|=1<<5;
delay_ms(300);
GPIOB->BSRR=0x0020;
GPIOE->BRR=0x0020;
delay_ms(300);
}
}
}
但是在接收数据时,并没有把数据发回电脑。
|
|