我在使用
STM32作为微控制器尝试控制ST25R3911B(用的自己画的板子)去读
NFC卡片的ID 写完代码SPI能够正常
通信去读出芯片的寄存器 但是ST25R3911B板子上的外部无源晶振无法起振。我阅读了手册之后发现跟晶振起振有关的相关配置就两个一个是00h寄存器 选择OSC的频率这个我在初始化前就配置好了13.56MHZ 系统上电默认的是27.12MHZ 然后就是0X02h的寄存器的第七位en位是使能振荡器这个也配置了 所以我认为基本可以排除软件问题了。然后我跟队伍的硬件手几乎是把整个
电路板的硬件翻了底朝天查了好几遍也没能找到问题,硬件认为我少配置了东西,但是我认为配置好这两个就够了,去翻官方demo写的很复杂我没有看懂。在此想请教大佬们可能是什么问题
这是我工程中主要代码
st25r3911ModifyRegister(0x00, 0x08, 0x00); // 清除 bit3,osc=0
Ini=rfalIni
tialize();Ini = rfalNfcInitialize();Ini=rfalFieldOnAndStartGT();
Ini=rfalSetMode(RFAL_MODE_POLL_NFCA, RFAL_BR_106, RFAL_BR_106);
rfalSetGT(0);
Ini=rfalNfcaPollerInitialize();
//st25r3911ReadRegister(0x01, &tmp);
/
USER CODE END 2 /
/ Infinite loop // USER CODE BEGIN WHILE /while (1){/ USER CODE END WHILE /
/ USER CODE BEGIN 3 /
rfalWorker();if (rfalNfcaPollerCheckPresence( RFAL_14443A_SHORTFRAME_CMD_WUPA, &sensRes) == ERR_NONE){
if (rfalNfcaPollerFullCollisionResolution(RFAL_COMPLIANCE_MODE_NFC, 1, &nfcaDev, &devCnt) == ERR_NONE){ // printf("UID: "); for (int i = 0; i < nfcaDevice.nfcId1Len; i++) { // printf("%02X ", nfcaDevice.nfcId1); } // printf("n");}}//st25r3911ReadRegister(0x02, &tmp);}
/ USER CODE END 3 /板子的原理图也放上了}
