连接时的报错已经解决,是ST Link Utility的版本低了,升级到3.7后,顺利连接!
一直都在做电机控制,首先也顺带测试一下F446的一个关键外围:参考电压Vref。
我们使用它已经校准的Vref来测量系统的VCC,在她的datasheet中,标明了Temperature coefficient:50ppm/°c(max),而F302xb的对应值是100ppm/°c(max),可见性能是在提高。
程序如下:
u8 cBuff;
s32 _wBuff;
u32 wVTs,wVref,wBuff;
static u8 cTBuff =0,
cCntBuff=0;
cTBuff++;
if( ( cTBuff & 0x7 ) == 0 ) // Tb: 1s
{ // device temp calculate
cCntBuff++;
sSystemFirmWare._wTempDeviceDataBuff[ (cCntBuff&0x7) ] = sSystemFirmWare.sTemperatureInput[0xe].iAdcBuff;
sSystemFirmWare._wVrefDataBuff [ (cCntBuff&0x7) ] = sSystemFirmWare.sTemperatureInput[0xf].iAdcBuff;
// VrefCal
sSystemFirmWare.iVrefCal = *(vu16*)(dVrefCal);
// TsCal
sSystemFirmWare.iTsCal1 = *(vu16*)(dTsCal1);
sSystemFirmWare.iTsCal2 = *(vu16*)(dTsCal2);
for( cBuff=0,wVTs=0,wVref=0;cBuff<8;cBuff++ )
{
wVTs +=sSystemFirmWare._wTempDeviceDataBuff[ cBuff ];
wVref+=sSystemFirmWare._wVrefDataBuff [ cBuff ];
}
wVTs >>= 3;
wVref>>= 3;
sSystemFirmWare.wVref = wVref;
// Vcc 校准 @ VrefCal
wBuff = 3300;
wBuff*= sSystemFirmWare.iVrefCal;
wBuff/= (wVref+1);
sSystemFirmWare.iVssAx1000 = wBuff;
结果如下:系统VCC=3.383v,测量结果=3.370,误差为-0.38%,非常之好!
稍后将测量Vref的温度稳定性和驱动LCD接口。 |