提問:
在使用CUBEMX生成的代碼,使用硬件SPI的速度比使用軟件模擬的SPI速度要慢幾倍(已經(jīng)在硬件SPI配置成2分頻 )按概念來說不應(yīng)該是硬件SPI比軟件模擬的SPI速度要快很多么?使用了示波器也測兩者速度差很多硬件的SPI要快很多 ,但不使用cubemx的時(shí)候 直接使用HAL庫的硬件SPI 也只是比軟件模擬的SPI快一倍多一點(diǎn)。這是什么原因呢?
最新回答
應(yīng)該說,SPI的工作跟CubeMx工具是沒有關(guān)系的;
你說硬件SPI速率比軟件模擬的SPI速率慢或說慢幾倍,這恐怕要具體來看。
對(duì)于片內(nèi)硬件SPI,其速率是根據(jù)配置來的,在不超規(guī)格前提下,配置多少就多少。
軟件模擬也是可控的,可快可慢,快慢跟CPU主頻和你的代碼設(shè)計(jì)息息相關(guān),不能簡單
斷定誰一定快誰就一定慢。你看看配置的SPI外設(shè)的時(shí)鐘到底是多少,先確定硬件SPI是否能根據(jù)配置正
常工作,然后嘗試軟件模擬跟硬件SPI的最高速率做些比較。退一步講,即使你現(xiàn)在所用芯片能通過軟件方式模擬出高于硬件SPI的速率也可以理解,
畢竟軟件模擬意味中CPU只能忙這件事了或主要忙這件事了,而硬件SPI的工作相對(duì)CPU是獨(dú)立的。