使用官方例程,USART3直接连接SIM卡,PB12-CK PB10-IO PB11-RST 供电用3V3 ,复位信号后 能收到ATR,但之后收到的相应数据都有异常,分析了一下收到ATR后的void SC_PTSConfig(void)函数,USART3的波特率通过RCC_ClocksStatus.PCLK1_Frequency/((SC_USART->GTPR & (uint16_t)0x00FF) * 2)*D/F得出的,
而实际上,SIM卡的需要的波特率也是通过3571200*D/F得出,DF的值均可通过查表获取,问题在于RCC_ClocksStatus.PCLK1_Frequency的值位36000000,而不是3571200,导致最后计算的波特率有差异,以至于例如 例程中使用的初始波特率是9677,而不是9600,再ATR后调整波特率的误差与SIM卡要求的值相差了1%,这个会不会是收到错码的原因,抛砖引玉,希望各位大神指点。如果是其他原因请支持。 |