Key一哥
获得 2 次赞
帮助过0人
void InternalFlash_Read(uint32_t addruint8_t *puint16_t Byte_Num){ uint8_t i=0; while(Byte_Num--) { p[i]=(*(__IO uint8_t*) addr); i++; addr++; }}这个读内部flash在F1上可以,在F0上就会导致程序卡死,请问大佬这是怎么回事
我在使用硬件SPI读取芯片数据时,一开始数据没有任何异常,但是过一天或者两天,从芯片中读到的数据出错。我用示波器看了一下出错的SPI时序,时钟没有任何异常,MOSI引脚好像有问题,和正常的SPI有一些区别,大致是空闲电平从低电平变为高电平,因为示波器没有数字信号分析能力,我只能看到这么多。我初步怀疑是中断问题,因为只有中断才会出现这样的特性。但是我从代码上分析,并没有任何时候被打断会出现不可恢复的错误。下面是我的代码:uint32_t ATT7022_SPI_RegRead(uint8_t reg){ uint8_t data[3]; HAL_SPI_Transmit(&hspi2 ® 1 100); ATT7022_DELAY_US(3); HAL_SPI_Receive(&hspi2 data 3 100); return (uint32_t)(data[0]<<16)|(data[1]<<8)|(data[2]);}