打印
[STM32F1]

stm32 中断服务函数处理问题

[复制链接]
1054|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
void SPI2_IRQHandler(void)
{
   uint16_t temp;
if ( (SPI_I2S_GetITStatus(SPI2, SPI_I2S_IT_TXE) == SET))
{               
if ((Out_Data_Offset < In_Data_Offset))
{
if ((channel++) & 1)
{
temp = (Stream_Buff[Out_Data_Offset] )| (Stream_Buff[Out_Data_Offset+1] << 8);
SPI_I2S_SendData(SPI2, temp);
                            Stream_Buff[Out_Data_Offset]=0;
                            Stream_Buff[Out_Data_Offset+1] = 0;
                            Out_Data_Offset = Out_Data_Offset + 2;
                           //In_Data_Offset++;
                        }
else
{
temp = (Stream_Buff[Out_Data_Offset] )| (Stream_Buff[Out_Data_Offset+1] << 8);
SPI_I2S_SendData(SPI2, temp);
                     
}               
}
}
像这个spi的处理函数,进入中断过后,if语句只执行一次,那怎么保证把streambuff里面的数据读出来,还是if ( (SPI_I2S_GetITStatus(SPI2, SPI_I2S_IT_TXE) == SET))这句语句有它的执行时间,一直在这里执行,求解。
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

16

帖子

0

粉丝