stm8 spi四线 波特率 问题
程 序:CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, ENABLE);
SPI_DeInit();
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_4, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_HIGH, SPI_CLOCKPHASE_2EDGE, SPI_DATADIRECTION_1LINE_TX, SPI_NSS_SOFT, 0x07);
SPI_Cmd(ENABLE);
void OLED_WriteCmd( uchar sendData)
{
GPIO_WriteLow(GPIOA, GPIO_PIN_3);/*片选信号*/
GPIO_WriteLow(GPIOC, GPIO_PIN_4);/*0表示后面是命令,1表示后面是数据*/
SPI_SendData(sendData);
while (!SPI_GetFlagStatus(SPI_FLAG_TXE));
GPIO_WriteHigh(GPIOA, GPIO_PIN_3);
}
黄色位置的波特率设置不能设置为8或16等更大数置,只为2或4可以。实在不能理解,请大侠明示
我也不懂,只能帮楼主加人气。 SPI_DeInit();
// 1Mhz,最快可以用10Mhz
SPI_Init(SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_16, SPI_MODE_MASTER, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_1EDGE,
SPI_DATADIRECTION_2LINES_FULLDUPLEX, SPI_NSS_SOFT, 7);
SPI_IntEn(0, 1);
enableInterrupts();
SPI_Cmd(ENABLE);
可以啊,上面设置就是啊。我没试过,速率肯定可以设置的 可以设置成2,4,8,16,32,64,128,256呀 johnson_gong 发表于 2016-8-30 10:49
可以设置成2,4,8,16,32,64,128,256呀
我说的是STM32F10xx系列的,但是我看了其他系列也是可以设置的,这个可以自己选择的,没有固定的 也许是IO的速度达不到,也许他内部没有那么高的分频 没有看到哪了说不能分频。
STM8S
没有搞过,stm8,我觉得你这个要看手册,手册中大致会写。还有关注类似32的时钟树啊,io的speed啊,之类的。 分频资料看过了 ? 分频资看过,也知道可以分频,但有的分频设置点不亮OLED屏,修改为顶楼黄色部分就可以点亮
页:
[1]
2