
吃过晚饭 忽然想测试一下GPIO口的速度 2 u5 b$ d0 P8 J# b 使用的库函数 不是裸奔 晶振8M 9倍频 ! Y6 F3 a2 O* p8 ~ RCC_HCLKConfig(RCC_SYSCLK_Div1);7 a9 u7 y* l3 b5 X ; p. M, `- p% S0 c //设置高速 AHB 时钟(PCLK2) RCC_PCLK2Config(RCC_HCLK_Div1); //设置低速 AHB 时钟(PCLK1) RCC_PCLK1Config(RCC_HCLK_Div1);. R, i. `& j( f; n% P( b: M 0 E" D' M% K$ k GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ;# ]+ K+ v, h: P, F L+ n2 k GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;& _7 O8 B. [% T2 j$ ^. ` GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;4 v3 H6 ?6 T1 { GPIO_Init(GPIOC, &GPIO_InitStructure); while (1) { GPIO_SetBits(GPIOC, GPIO_Pin_10);8 U) n% k3 q% F0 K GPIO_ResetBits(GPIOC, GPIO_Pin_10);9 K. h1 F0 |: [ C }1 R. r4 W0 V8 b H6 [# d1 ^" H) ` * f4 i$ |+ f% ?: T& `: ? 示波器 : 安捷伦 54621D . G$ L6 i3 ^* q1 o8 X- n 用示波器看的速度是2.0MHz 呵呵 不知道有没有哥们用裸奔的方法测试了的 呵呵7 i( w9 z! ?' Z. T5 N % o+ e* @) U& y& P' } / Q- \+ o1 t% B8 l" f! ]* u0 F0 i 7 S6 }% w% m: X4 P, i) b+ Q ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+ F: l/ @" n) r* k 然后力哥裸奔的测试结果是: 裸奔测了一下 示波器显示是 2.768M Hz+ e I7 n2 i% x 固纬 GDS-806S 示波器 / Q; b( \1 A Z: a' R5 j while(1)* Q5 m5 f/ Z- i" \3 u* z& _ { LED1_OFF; LED1_ON;. y5 Z! G9 V @# d G, H }2 [/ P1 h0 m4 ]0 v7 Y9 n* y5 p ; P% F+ {( M3 O. S# } v/ K% `0 W //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 力哥继续测试 考虑上流水线0 N! |* c+ I1 {3 G# _8 [/ R8 s 继续裸奔 示波器显示达到 4M Hz; A8 Y, P9 W+ y! P 固纬 GDS-806S 示波器! g, @" Q+ |% u, e while(1); O6 z; f; T8 l8 x; L { LED1_OFF; LED1_ON; LED1_OFF; y! B6 d. _0 U. U: J3 G4 z LED1_ON; .................................................(200行重复) LED1_OFF;- `; \4 M. y) B* y! E* R LED1_ON; q; I. c4 B7 Y M& u LED1_OFF;6 |% _$ T/ g7 \8 k+ e LED1_ON;9 c6 H4 O6 W6 a+ ~1 u8 o( N } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8 g* [1 g& ~- l6 `5 ^ 2 @$ E% E3 W6 q8 A8 ^% m9 E 然后我也把流水线考虑进去 继续使用固件库的方式 呵呵 我也在循环体内部加了N句 也考虑了流水线 * U% O/ ?) B* z7 E. ` while (1)& Z2 _4 _# P. G x8 u5 Y- v) ^ {2 j, W+ t1 [, Z' r- z) O GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);4 ^8 L% g4 E3 r" `( ^! k GPIO_SetBits(GPIOC, GPIO_Pin_10);& ]; ?) B0 Y a GPIO_ResetBits(GPIOC, GPIO_Pin_10); ................ 中间200句 GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);5 ?6 Q& A& `2 k- G GPIO_SetBits(GPIOC, GPIO_Pin_10);/ _) l, R' _' c7 V& N0 Y- a GPIO_ResetBits(GPIOC, GPIO_Pin_10); } 示波器 : 安捷伦 54621D ) s& q" ?6 d0 R+ Y- p) x 然后速度是2.725MHz 呵呵 看来流水线还是起了作用了的 嘿嘿2 A$ j: `" l, k' C y " g) Q2 X9 E9 c U. |9 K: z8 l' a- R 2 y% N) M0 K, {: M ; A' @. @# L$ k6 g7 P |
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
GPIOC->BSRR = GPIO_Pin_10;
GPIOC->BRR = GPIO_Pin_10;
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
原贴地址:http://www.stmfans.com/bbs/viewthread.php?tid=1051&highlight=GPIO# D' y" Z5 s" |2 k5 x( }
我贴在博客的地址:http://hi.baidu.com/smallwormsea/blog/item/6c00832bca02c7fce6cd4040.html
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
回复:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
回复:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
RE:STM32 GPIO口的速度是多少?含全部代码和显示图