STM32 IO口速度測試報告
測試條件:STM32F10F103VET6 @ 72MHz, Keil Ver:4.71.2.0
注:不同情況下測試結果有所不同,本測試結果僅作爲編程的參考
IO口軟件翻轉測試 |
|||||
測試語句 |
IO口時鐘(MHz)
|
測得IO口翻轉速度(MHz) | |||
優化級別0 |
優化級別1 |
優化級別2 |
優化級別3 |
||
while(1) { GPIO_SetBits(GPIOD,GPIO_Pin_All); GPIO_ResetBits(GPIOD,GPIO_Pin_All); } |
2 | 1.712 | 2.404 | 2.315 | 2.315 |
10 | 1.712 | 2.404 | 2.315 | 2.315 | |
50 |
1.712 |
2.000 |
1.938 |
1.938 |
|
while(1) { GPIO_SetBits(GPIOD,GPIO_Pin_11); GPIO_ResetBits(GPIOD,GPIO_Pin_11); } |
2 | 1.712 | 2.404 | 2.315 | 2.315 |
10 | 1.712 | 2.404 | 2.315 | 2.315 | |
50 |
1.712 |
2.000 |
1.938 |
1.938 |
|
while(1) { GPIOD->ODR = 0xffff; GPIOD->ODR = 0x0000; } |
2 | 4.808 | 7.937 | 7.937 | 7.937 |
10 | 4.808 | 7.937 | 7.937 | 7.937 | |
50 |
4.808 |
12.05 |
12.05 |
12.05 |
|
while(1) { GPIOD->ODR |= 0x0800; GPIOD->ODR &= 0xf7ff; } |
2 | 1.634 | 3.597 | 3.597 | 3.597 |
10 | 1.634 | 3.597 | 3.597 | 3.597 | |
50 |
1.634 |
3.597 |
3.597 |
3.597 |
|
while(1) { GPIOD->ODR |= 0x0800; GPIOD->ODR &= ~0x0800; } |
2 | 2.000 | 3.597 | 3.597 | 3.597 |
10 | 2.000 | 3.597 | 3.597 | 3.597 | |
50 |
2.000 |
3.597 |
3.597 |
3.597 |
|
while(1) { GPIOD->BSRR = 0x0800; GPIOD->BRR = 0x0800; } |
2 | 4.505 | 7.937 | 7.937 | 7.937 |
10 | 4.505 | 7.937 | 7.937 | 7.937 | |
50 | 4.505 | 12.05 | 12.05 | 12.05 |
原創文章,轉載請註明出處。
如有疑問或建議,請在回覆中說明,謝謝!