|
菜鳥機器 發表于 2022-7-11 04:15 你自己掌握好這其中的靈活性和原理就行了,沒有必要糾結那么多 每個SPI器件的通訊速度都是不一樣的,有的快有的慢,快的有100多MHZ的,比單片機的72MHZ還快,像這種壓根就不需要算是 有的卻只有幾MHZ,這種情況就得加延時了 為了方便的代碼的移植,你可以用滴答時鐘做一個延時,使用的時候,根據你所用的SPI器件和單片機的時鐘來調整就行 像這種while的延時就別在STM32上折騰了,還什么示波器來看,還改代碼的,這是開始入門學單片機的代碼,知道延時的原理就行了 滴答時鐘直接就完事了 |
caoxinri123 發表于 2022-7-11 16:17 為什么要改為循環延時呢?不能調整t值嗎? |
| 用循環延時,正確的做法是,先按照大概的指令時間,然后再用示波器微調 |
黃youhui 發表于 2022-7-11 10:47 非本人寫的,我也不知道原作者用意。所以沒亂改。 |
菜鳥機器 發表于 2022-7-9 19:17 你都用103了,還用這種傻瓜式延時。隨便抄一個滴答定時器也行啊 |
Y_G_G 發表于 2022-7-10 23:05 原來如此。沒錯就是SPI通訊延時。 |
菜鳥機器 發表于 2022-7-10 19:50 這種延時估計大多就是那種要求不高的,比如有的SPI沒那么快,就有一個做做樣子就行的,比如只要延時1uS 那這代碼就隨便一寫就行,反正大于1uS就行,在SPI只作為器件控制而已,不作為大數據傳送的時候,這種延時對整個程序影響又不大 |
zlc558 發表于 2022-7-10 16:33 這樣能用么?會不會對原來程序有影響~ |
qq624353765 發表于 2022-7-10 06:47 非本人寫的,我也不知道原作者用意。 |
Y_G_G 發表于 2022-7-10 00:01 是啊,感覺很不標準。 |
| 可以修改為使用定時器中斷 |
| 所以要少用delay函數 |
| 有systick為什么還要這種延時代碼呢? |
菜鳥機器 發表于 2022-7-9 19:17 你自己試試唄,延遲后翻轉IO口,用示波器頻率計測試。μs級別的延遲這么寫還可以,也沒有別的方便的方法,如果是ms級的延遲還這么些就顯得太蠢了,用systick。 |
Hephaestus 發表于 2022-7-9 15:13 t怎么調整? |
| 可以調整t的大小,但是注意并不是按比例縮放,STM32在72MHz有2個flash latency,在24MHz沒有。 |