FM1288可以采用多种方式下载配置参数,我选用的是通过I2C下载。
一、数据格式
如图所示:
每一个设置参数都有固定格式: 0XFCF3 + 0X3B +0X1E34 +0X008B
蓝色参数表示 :写动作 ; 红色参数表示 :写入的地址 ;绿色参数表示:写入的值
以上是每个配置参数的格式,然后还有一次写入的格式
必须以 0XFCF3 + 0X3B +0X1E34 +0X008B 开头;以 0XFCF3 + 0X3B +0X22FB +0X0000结尾。
如果想要读等操作可以对照下图
二、 代码例程
void FM1288_I2C_Init(void) //初始化I2C { uint8_t uwDelay; GLB->SD_PUL_DN = 0; //!<1: Sensor data bus pull-down resister (65k) enable GLB->I2C_FUNC_DIS = 0; GLB->SF_FUNC_DIS = 0; I2C_Init(I2C_2,Master,I2C_STDSPEED,0x60,NULL); // 400kb/s 0x60=( oxco>>0x01 ) Delay ( 2000); FM1288_WRIdata(); } void FM1288_WRIdata(void) // 写入数据 { uint32_t ulAdr,uwDelay; uint8_t ubBuf[7]; uint16_t uADOCode[]= { 0x1E34, 0x008B, 0x22F2, 0x0034, ......... //省略一堆参数 0x22F8, 0x8002, 0x22F9, 0x007F, 0x22FA, 0x003F, 0x22fb,0x0000, //----end 0xffff,0xffff//----判断停止发送 } ubBuf[0] = 0xfcf3>>8; ubBuf[1] = 0xfcf3&0x00ff; ubBuf[2] = 0x3b; ulAdr=0; Delay( 1000); while(1) { ubBuf[3]=uADOCode[ulAdr]>>8; ubBuf[4]=uADOCode[ulAdr]&0x00ff; ubBuf[5]=uADOCode[(ulAdr+1)]>>8; ubBuf[6]=uADOCode[(ulAdr+1)]&0x00ff; if(ubBuf[3]==0xff) { break; } else { I2C_Write(I2C_2,ubBuf,7); ulAdr+=2; } } }