stm8控制RFID芯片 PN512 用stm8的SPI与PN512通信 下面是读出各寄存器复位值的代码;
奇怪的是 正常打印出来的值应该是 4D 10 84 62 但是我现在打印出来的却是 80 4D 10 84
不知道这个80是从哪里跑出来的 试过了很多次都是这样的结果。刚开始还以为是PN512坏了,
换另一个PN512 还是同样的结果 那可能就是软件里面有问题了,具体什么问题 请大家帮忙解答!!
[mw_shl_code=c,true] jc = ReadRawRC(DemodReg); //复位值4Dh
UART1_SendByte(jc);
jc = ReadRawRC(TxSelReg); //复位值10h
UART1_SendByte(jc);
jc = ReadRawRC(RxThresholdReg); //复位值84h
UART1_SendByte(jc);
jc = ReadRawRC(0x1c); //复位值62h
UART1_SendByte(jc);
void SPI_PN512(void)
{
CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI,ENABLE);
SPI_DeInit();
GPIO_DeInit(GPIOA);
GPIO_DeInit(GPIOB);
GPIO_DeInit(GPIOC);
GPIO_Init(GPIOA,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST); //NSS
GPIO_Init(GPIOD,GPIO_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST); //SCK
GPIO_Init(MF522_RST_PORT,MF522_RST,GPIO_MODE_OUT_PP_HIGH_FAST); //RST
GPIO_Init(GPIOC,GPIO_PIN_6,GPIO_MODE_OUT_PP_HIGH_FAST);
GPIO_Init(GPIOC,GPIO_PIN_7,GPIO_MODE_IN_PU_NO_IT );
GPIO_WriteHigh(GPIOA,MF522_NSS);
SPI_Init(SPI_FIRSTBIT_MSB,SPI_BAUDRATEPRESCALER_2,SPI_MODE_MASTER,\
SPI_CLOCKPOLARITY_LOW,SPI_CLOCKPHASE_1EDGE,SPI_DATADIRECTION_2LINES_FULLDUPLEX,\
SPI_NSS_SOFT,0x07);
SPI_Cmd(ENABLE);
}
[/mw_shl_code]
[mw_shl_code=c,true]
[/mw_shl_code]
|