原来在STM8S003上可以正常用的程序,移植到STM8S903上,SPI寄存器写不入,仿真时看了,写寄存器根本没变化,写SPI->CR1没有变化,SPI端口也没有信号输出。外设时钟已经打开。程序如下:
void clk_init(void)
{
CLK_DeInit();
CLK->CKDIVR = CLK_CKDIVR_reset_value;
CLK->PCKENR1 = 0xba;//TIM1TIM5TIM6UARTSPI
CLK->PCKENR2 = 0;
}
void spi_init(void)
{
SPI_DeInit();
SPI->CR1=0x44; //先发MSB,开启SPI,波特率CPU/2,主模式,SCK空闲低,采样由第一时钟边沿开始
}
void SPI_DeInit(void)
{
SPI->CR1 = SPI_CR1_RESET_VALUE;
SPI->CR2 = SPI_CR2_RESET_VALUE;
SPI->ICR = SPI_ICR_RESET_VALUE;
SPI->SR = SPI_SR_RESET_VALUE;
SPI->CRCPR = SPI_CRCPR_RESET_VALUE;
}
一周热门 更多>