#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,无波形输出,郁闷啊
|