我调用了文件系统,在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;
}
}
}
一周热门 更多>