u32 TxLoad(u8 id) { char msg[16]; //利用CYRF产生动态ID,每次上电仅产生一次 if(TxRndId==0) { srand(AdcGetValue(0)+AdcGetValue(1)+AdcGetValue(2)+AdcGetValue(3)+AdcGetValue(4)); CYRF_Reset(); CYRF_GetMfgData(CYRF_MfgId); TxRndId = ((u32) ( rand() ^ CYRF_MfgId[0] ^ CYRF_MfgId[3]) << 16) | ((u32)( rand() ^ CYRF_MfgId[1] ^ CYRF_MfgId[4]) << 8) | ((u32)( rand() ^ CYRF_MfgId[2] ^ CYRF_MfgId[5]) << 0); TxRndId = TxRndId % 1000000; } if(id>=TX_MOD_NUM) { PageAlertModel("发射模块内部错误!",0); return 0; } if(id!=TxPrevId) { strcpy(msg,PageOptionProtocol[id]); TxModule[TxPrevId].Close(); if(TxModule[id].Open()) { strcat(msg,"加载成功!"); PageAlertModel(id?msg:"RF已关闭!",500); TxPrevId=id; return 1; } else { strcat(msg,"加载失败!"); PageAlertModel(id?msg:"RF关闭失败!",0); TxPrevId=0; return 0; } } return 2; }
int main(void) { int counter = 0; //u16 rx_value = 0x42; u8 cyrfmfg_id[7]; clock_setup(); gpio_setup(); spi_setup(); CYRF_Reset(); #if SEMIHOSTING initialise_monitor_handles(); #endif cyrfmfg_id[0] = 0; cyrfmfg_id[1] = 0; cyrfmfg_id[2] = 0; cyrfmfg_id[3] = 0; cyrfmfg_id[4] = 0; cyrfmfg_id[5] = 0; /* Blink the LED (PA8) on the board with every transmitted byte. */ while (1) { /* LED on/off */ gpio_toggle(GPIOB, GPIO10); /* printf the value that SPI should send */ printf("Counter: %i SPI receiving mfgid: ... ", counter); /* blocking send of the byte out SPI1 */ CYRF_GetMfgData(cyrfmfg_id); cyrfmfg_id[6]=0; /* printf the byte just received */ printf(" SPI Received Byte: '0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X'\r\n", cyrfmfg_id[0], cyrfmfg_id[1], cyrfmfg_id[2], cyrfmfg_id[3], cyrfmfg_id[4], cyrfmfg_id[5]); counter++; } return 0; }
void Banner() { CYRF_Reset(); u8 Power = CYRF_MaxPower(); u8 mfgdata[6]; u8 tmp[12]; TxName(tmp, 12); printf("\nDeviation\n"); /* Check CPU type */ printf("BootLoader : '%s'\n",tmp); printf("Power : '%s'\n",Power == CYRF_PWR_100MW ? "100mW" : "10mW" ); printf("SPI Flash : '%X'\n",(unsigned int)SPIFlash_ReadID()); CYRF_GetMfgData(mfgdata); printf("CYRF Mfg Data : '%02X %02X %02X %02X %02X %02X'\n", mfgdata[0], mfgdata[1], mfgdata[2], mfgdata[3], mfgdata[4], mfgdata[5]); }