求一个MC9S08AC60的通过SPI控制信号收发的程序
- UID
- 808749
|
求一个MC9S08AC60的通过SPI控制信号收发的程序
求一个MC9S08AC60的通过SPI控制信号收发的程序 |
|
|
|
|
|
- UID
- 808749
|
void Init_Clock(){
FCDIV = 1; //时钟分频器
SYNR = 2; //时钟合成器
while(!(CRGFLG&0X08)); //倍频时钟 PLLCLK=8M*3=24M
SMCLK|= 0x80; //CPU总线时钟 24/2=12M
}
/********************/
/*SPI初始化程序*/
/*******************/
void SPI_Init(void) {
MODRR = 0x00; //使用PS4-PS7做SPI0
SPI0CR1 = 0x50; //SP使能,主机方式,上升沿采样下降沿结束,先传高位MSB,时钟相位=0
SPI0CR2 = 0x00; //ss端不做输出使能
SPI0BR = 0x20; //12/6=2M SPI波特率
PTS_PTS7 =1; //PS7口做/ss片选端并设置高电平
DDRS_DDRS7=1; //PS7做/ss端口,置为输出口,并将1输出
}
/***************************************/
/* */
/* SPI发送一个数据子程序 */
/* */
/***************************************/
void SPI_Send(unsigned char data) {
SPI0DR = data;
while(!(SPI0SR&0x20));
}
/***************************************/
/* */
/* SPI接收一个数据子程序 */
/* */
/**************************************/
unsigned char SPI_Receive() {
while(!(SPI0SR&0x80));
return(SPI0DR);
}
用codewarrior6.3编译时,有3个错误,
SYNR = 2; //时钟合成器
while(!(CRGFLG&0X08)); //倍频时钟 PLLCLK=8M*3=24M
这2个地方有错误,请教下高手怎么改 |
|
|
|
|
|