//////////////////////////////////
//端口定义
/////////////////////////////////////////////////////////////////////
//MFRC522
sbit MF522_RST = P2^0; //RC500片选
sbit MF522_NSS = P2^6;
sbit MF522_SCK = P2^5;
sbit MF522_SI = P2^4;
sbit MF522_SO = P2^3;
//指示灯
sbit LED_GREEN = P0^0;
/////////////////////////////////////////////////////////////////////
//函数原型
/////////////////////////////////////////////////////////////////////
void InitializeSystem();
#define BAUD_115200 256 - (OSC_FREQ/192L)/115200L // 255
#define BAUD_57600 256 - (OSC_FREQ/192L)/57600L // 254
#define BAUD_38400 256 - (OSC_FREQ/192L)/38400L // 253
#define BAUD_28800 256 - (OSC_FREQ/192L)/28800L // 252
#define BAUD_19200 256 - (OSC_FREQ/192L)/19200L // 250
#define BAUD_14400 256 - (OSC_FREQ/192L)/14400L // 248
#define BAUD_9600 256 - (OSC_FREQ/192L)/9600L // 244
#define OSC_FREQ 22118400L
//#define OSC_FREQ 7372800L
#define OSC_FREQ 22118400L
#define RCAP2_50us 65536L - OSC_FREQ/40417L
#define RCAP2_1ms 65536L - OSC_FREQ/2000L
#define RCAP2_10ms 65536L - OSC_FREQ/1200L
#define TIME0_500us 65536L - OSC_FREQ/8000L
#define TIME0_10ms 65536L - OSC_FREQ/200
#define CALL_isr_UART() TI = 1
#define TRUE 1
#define FALSE 0
硬件上我是这样接的:SDA接P2.6,IRQ接P2.2,RST,SCK,MOSI,MISO接法如以上程序段。
程序是别人写过的成功过的,现在的问题是串口助手读不到数据,怀疑接口接错了。
-
IRQ可以忽略,SDA应该对应SDO才对
用STC51之前
SDA就是NSS引脚。
检查系统时钟频率是否跟代码一致,检查串口波特率和接线。
之后先仿真跟踪看看与522的通信是否正常,正常后再去检查串口那部分是否有问题。
我最近也是用51的程序移植到STM32上面,不过还在调试,有结果了在跟你交流
楼主你的代码可不可以给分享下,我搞了好几天了,一直不行,拜托了
leiming0122@163.com