目的
測(cè)試不同情況下IO翻轉(zhuǎn)的速度
測(cè)試環(huán)境
- MDK5.38
- 實(shí)驗(yàn)例程實(shí)驗(yàn)一 流水燈實(shí)驗(yàn)
- 示波器:DS1054
測(cè)試代碼
- 使用TOG進(jìn)行測(cè)試:
int main()
{
uint32_t i;
RCC_Configuration(); //時(shí)鐘配置64M
GPIO_Configuration();//LED初始化
while(1)
{
PA08_TOG();
}
}
速率為4MHz:

- 使用直接寫高BSRR/BRR
int main()
{
uint32_t i;
RCC_Configuration(); //時(shí)鐘配置64M
GPIO_Configuration();//LED初始化
while(1)
{
PA08_SETHIGH();
PA08_SETLOW();
}
}
所示頻率為6.41MHz

- 我們看到上面的波形占空比好象不是50%,是因?yàn)樘D(zhuǎn)也需要點(diǎn)用時(shí)間,所以我修改了一下代碼進(jìn)行測(cè)試:
int main()
{
uint32_t i;
RCC_Configuration(); //時(shí)鐘配置64M
GPIO_Configuration();//LED初始化
loop:
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
PA08_SETHIGH();
PA08_SETLOW();
goto loop;
}
測(cè)得波形如下:

從上圖我們得知頻率可以達(dá)到15.9MHz。
- 經(jīng)查看數(shù)據(jù)手冊(cè),GPIO有兩種速度模式一種高速,一種是低速,但是我配置高低速都是一樣。
【總結(jié)】經(jīng)測(cè)試,對(duì)GPIO進(jìn)行了原子的操作,最高速度可以達(dá)到15.9MHz。對(duì)寄存器直接寫B(tài)SRR、BRR,相比TOG速度還是要快很多。當(dāng)于提供了TOG這個(gè)寄存器,對(duì)于需要翻轉(zhuǎn)電平,還是非常方便的。
審核編輯:湯梓紅
-
測(cè)試
+關(guān)注
關(guān)注
8文章
6016瀏覽量
130644 -
示波器
+關(guān)注
關(guān)注
113文章
6965瀏覽量
194576 -
流水燈
+關(guān)注
關(guān)注
21文章
435瀏覽量
61258 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
6113瀏覽量
112951 -
GPIO
+關(guān)注
關(guān)注
16文章
1312瀏覽量
55684 -
CW32
+關(guān)注
關(guān)注
1文章
281瀏覽量
1666 -
武漢芯源
+關(guān)注
關(guān)注
1文章
67瀏覽量
666
發(fā)布評(píng)論請(qǐng)先 登錄

CW32飯盒派開(kāi)發(fā)板 測(cè)試IO速度
評(píng)論