MSSP在SPI方式下全双工工作,下面的程序对不对?
// SPI 初始化voidspi_init()
{
PIR1=0; // 清除SPI中断标志
SSPCON=0x30; // SSP模块使能,SCK SDO SDI SS为SPI专用;CKP空闲高电平;主控时钟频率f/4
SSPSTAT=0xc0; // SSP主控,输出数据的末尾采样输入数据;在SCK的下降沿发送数据
TRISC=0x10;
}
// 同时发送和接收数据
void tx_rx()
{
SSPBUF=TxData;
do{;}while(SSPIF==0); //发送数据,A--B
SSPIF=0;
;------------------------------------------------------------------------
do{;}while(SSPIF==0); // 发送完后转接收数据,下面的程序能不能用?
SSPIF=0;
RxData=SSPBUF; //接收数据, B--A
} MSSP在SPI主模式下发送数据的同时也就在接收数据!
页:
[1]