怎么才能讓CH32L103的SPI1更快一點呢

目前最快做到了4Mbps,我用示波器看SCLK信號確定的。

CH32L103主頻96M, 跟蹤總線時鐘配置發(fā)現(xiàn)PB2總線的PCLK2是不分頻,也就是96M

SPI1的時鐘設(shè)置SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;

也就是2分頻,應(yīng)該有48Mbps的速度,但實際只有4Mbps,是還有哪里沒有配置好嗎?


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

image.png使能這個寄存器SPI1->HSCR|=0x01;順便用邏輯分析儀抓一下時鐘波形,看看時鐘是不是48M的,要是時鐘是48M的,通信速度上不去只是你的總線利用率低而已。


按照您說的打開了HSCR,用示波器解碼SPI觀察CLK還是4Mhz

1715400390141165.png



SPI初始化代碼如下

void SPI_1Lines_HalfDuplex_Init(void)

{

? ? GPIO_InitTypeDef GPIO_InitStructure={0};

? ? SPI_InitTypeDef SPI_InitStructure={0};


? ? RCC_PB2PeriphClockCmd(RCC_PB2Periph_GPIOA | RCC_PB2Periph_SPI1, ENABLE );


? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7;

? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

? ? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

? ? GPIO_Init( GPIOA, &GPIO_InitStructure );


? ? SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx;

? ? SPI_InitStructure.SPI_Mode = SPI_Mode_Master;

? ? SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;

? ? SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;

? ? SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;

? ? SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;

? ? SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;

? ? SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;

? ? SPI_InitStructure.SPI_CRCPolynomial = 0;

? ? SPI_Init( SPI1, &SPI_InitStructure );

? ? SPI_HighSpeedRead_Cmd(SPI1, ENABLE);? ? //打開高速讀模式

? ? SPI_Cmd( SPI1, ENABLE );

}



你好,這個看著是你沒有使用外部晶振,而使能了外部晶振的宏了。如果沒有外接外部晶振,請將這個宏改為以下帶HSI的宏

//#define SYSCLK_FREQ_48MHz_HSI? 48000000

//#define SYSCLK_FREQ_56MHz_HSI? 56000000

//#define SYSCLK_FREQ_72MHz_HSI? 72000000

#define SYSCLK_FREQ_96MHz_HSI? 96000000

image.png


問題解決了,感謝Wch_Zdg?的熱情支持答復!


我估計是好多處修改,不知道哪里亂了,

重新從EVT的DEMO代碼復制過來再試,就沒有問題了,

波特率可以按我自己的需求調(diào)整了

image.png


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频