SD卡每次读完约512字节后进入中断?

2019-07-20 13:50发布

我调用了文件系统,在main函数里面先打开一个txt文件,读取6个字节并按照功能进行转换,之后就使能定时器1,想要每次进入定时器中断后都从txt读取6个字节,并转换,通过SPI发送出去。但是发现每次读取一定数据后定时器中断进不了,因为我有片选线拉低和拉高,所以用示波器看到进过多次拉低和拉高的脉冲后,就没法进入了(此时txt并没有读完)。可能是什么原因呢?

main函数部分是这样的(已打开txt)
                                               usart4.printf("HAD OPEN ");
                                                file_len = f_size(&file);
                                                usart4.printf("size: %d ",file_len);
                                                f_read(&file,read_buffer,6,&counter);
       
                                                ASC2char(read_buffer);
                                                usart4.printf("start ADC ");
                                                TIM1_Configuration();
                                                while(1)
                                                {}

定时器中断是这样的

void TIM1_UP_TIM10_IRQHandler(void)
{
if ( TIM_GetITStatus( TIM1, TIM_IT_Update) != RESET )
        {       
        TIM_ClearITPendingBit(TIM1 , TIM_IT_Update);
               
                SPI1_CS_OFF;
               
                send_data(dac_buffer[0]);
                send_data(dac_buffer[1]);
                send_data(dac_buffer[2]);
                SPI1_CS_ON;
               
                y++;
                if(y<(file_len/6))
                {
                f_read(&file,read_buffer,6,&counter);
                ASC2char(read_buffer);
                }
               
                else
                {
                       
                        f_lseek(&file,0);
               f_read(&file,read_buffer,6,&counter);
                   ASC2char(read_buffer);
                        y=0;
                }
               
        }
               
               
               
}       

0条回答

一周热门 更多>