| #include "STM8S105C_S.h"          /* Registers and memory mapping file. */ 
 /*****************SPI初始化函数***********************/
 //PC5->SPI_SCK,PC6->SPI_MOSI
 void SPI_Init(void)
 {
 PC_DDR|=0x20;//SPI_SCK输出
 PC_DDR|=0x40;//SPI_MOSI数据输出
 PC_CR1|=0X60;//SCK,MOSI设为推挽输出
 PC_CR2|=0X60;//SCK,MOSI输出速率最大10MHz
 //PC_ODR_ODR5=1;//SPI_SCK输出高电平
 // PC_ODR_ODR6=0;//SPI_MOSI数据输出低电平
 SPI_CR1  =0X07;
 //高位在先,禁用SPI,时钟2分频(1MHz),主机模式,总线空闲时CLK为高,第二个始终边沿开始采样
 SPI_CR2  =0X43;
 //双线单向模式,输出使能,CRC禁止,接着发送下个数据来自TX缓冲,全双工,使能软管理,主模式
 SPI_CR1 |=0X40;//使能SPI
 
 }
 
 /*****************SPI发送数据函数**********************/
 void SPI_sendbyte(unsigned char TX_data)
 {
 SPI_DR=TX_data;
 while(SPI_SR&0xFF==0x20);//等待数据已发送
 }
 
 
 
 void main ( void )
 {
 SPI_Init();
 SPI_sendbyte(0xf0);
 }
 /*---------------------------- End of file -----------------------------------*/
 
 
 用示波器观察SPI的SCK,无波形输出,郁闷啊
 
 |