新手上路
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2019-8-8
- 在线时间
- 7 小时
|
1金钱
初始化其中一部分
USART1->CR1 = (1<<2) //½óêÕÆ÷′ò¿a
|(1<<3) //·¢ËíÆ÷′ò¿a
|(1<<5) //ê1Äü½óêÕÖD¶Ï
|(0<<12) //8bitêy¾Yλ
|(0<<15)//16λ2éÑù(ÔúIRDAÄ£ê½ÏÂÖ»ÄüêÇ16λ2éÑù)
|(0<<10);
NVIC_EnableIRQ(USART1_IRQn); //ê1ÄüUARTÖD¶Ï
NVIC_SetPriority(USART1_IRQn,3);//ê1ÄüUARTμÄÖD¶ÏóÅÏ輶±e
USART1->CR1 |=1;//′ò¿a′®¿ú
串口中断函数
void USART1_IRQHandler( )
{
if(USART1->ISR & 0x20)//óDDÂêy¾Y
{
Uart1Buffer[Uart1WritePos++]=USART1->RDR;
if(Uart1WritePos>=BufferSize1)
Uart1WritePos=0;
}
USART1->ICR=0x123bff;//USART1->ICR=0x121b5f;//°üËùóDμÄÖն˱êÖ¾è«2¿Çå3y
}
串口能正确地传输数据,但是接收到数据进不了中断函数?我用仿真器看了,数据存在USART1->RDR寄存器里,这是为什呢?
|
|