
吃过晚饭 忽然想测试一下GPIO口的速度 6 B% {7 L! M6 W8 p5 h 使用的库函数 不是裸奔 晶振8M 9倍频 , L% i `% G$ ^3 y& S6 m+ s / _2 D8 D' o8 B* S$ c; |; h RCC_HCLKConfig(RCC_SYSCLK_Div1);5 b% K2 r8 |- U3 g/ [& A, D ; G$ P' e% {4 d) K //设置高速 AHB 时钟(PCLK2): D5 U) g! f: L5 G- Q# m. G RCC_PCLK2Config(RCC_HCLK_Div1);# K$ N/ ~" n# O 8 {, K I. f2 `" U2 l% m //设置低速 AHB 时钟(PCLK1) RCC_PCLK1Config(RCC_HCLK_Div1);' E1 X7 N4 F6 N- ?: i 9 f+ t8 b; [2 y& V# g0 c GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;4 S, R+ ]! F3 i% [ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;' w9 C3 ^% `0 H. l GPIO_Init(GPIOC, &GPIO_InitStructure); 1 w9 Q! |" U3 r" c: ^4 W while (1): b5 x5 _# e' Z2 s { GPIO_SetBits(GPIOC, GPIO_Pin_10);( @5 u3 v9 n& l0 T6 q GPIO_ResetBits(GPIOC, GPIO_Pin_10);8 y/ ?6 @" F/ ?4 _6 A }) A2 H7 i0 w9 F ; K& U/ R7 U2 o. C2 F6 `& q3 u. O 示波器 : 安捷伦 54621D 用示波器看的速度是2.0MHz 呵呵 不知道有没有哥们用裸奔的方法测试了的 呵呵4 n Z! M8 x, s9 S% r $ z4 U1 T* ^6 c% K- o7 E. L& P1 v: C& G : h4 r+ F; X9 `3 i U+ s- a 9 G! ^( `2 a# O/ \7 H 2 [ i3 G/ p; X+ y* o, J /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 然后力哥裸奔的测试结果是: 裸奔测了一下 ( |; e6 l7 L) ]* D' z9 E 示波器显示是 2.768M Hz. L& P; Q' ~% L* ~* ^) j: d, c 9 A- |1 y# c N2 b- a 固纬 GDS-806S 示波器 f" s/ f7 r' w( [ * k% b' @2 ]# \# p+ ? while(1) {( }: t% |6 V" f+ J8 c8 x8 K LED1_OFF; LED1_ON; }1 d5 e/ T) e4 t8 d7 H4 h1 E + a' n9 G6 c% X. p' J+ h //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 力哥继续测试 考虑上流水线 继续裸奔 示波器显示达到 4M Hz6 F* J% G( E8 F R : m1 P i5 x( r' F* o0 K0 \ 固纬 GDS-806S 示波器4 O6 `! s* E' x6 ?8 l while(1)/ N+ K; k* P- D { LED1_OFF; LED1_ON;& s7 `7 J5 U/ H+ x% U$ A! S( H9 [ LED1_OFF; LED1_ON;" Q2 z! N, P( j .................................................(200行重复) LED1_OFF; LED1_ON;% Z% K+ r0 Z. ] LED1_OFF; LED1_ON;& J P7 p& g3 C! F1 u } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////; P( B2 d# Y' f& `, h3 A. O $ `" J! Q. W3 B, P% E 然后我也把流水线考虑进去 继续使用固件库的方式' ?/ C0 z* O+ J; i8 U4 F' v 呵呵 我也在循环体内部加了N句 也考虑了流水线+ A/ o8 f$ y R* u : _9 X4 _9 B% U" G while (1)# _! O ?$ B: k, F { GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);- _; a# R4 x+ I$ Y5 @6 n GPIO_SetBits(GPIOC, GPIO_Pin_10);& r1 B6 m* F( d GPIO_ResetBits(GPIOC, GPIO_Pin_10); ................ 中间200句 T6 {. f/ R( d" ?" Z GPIO_SetBits(GPIOC, GPIO_Pin_10);+ e) T; m- j8 Z4 O) E GPIO_ResetBits(GPIOC, GPIO_Pin_10);% _- g1 [% g% c4 b; N% C4 t GPIO_SetBits(GPIOC, GPIO_Pin_10);1 `' b: Z5 P* J1 _0 F; p: S# { GPIO_ResetBits(GPIOC, GPIO_Pin_10);$ I& C/ Q' R- s2 C- b, z; S7 E1 x }) Q5 S7 G d% Z: F+ ]5 W( E 6 w; _. o' Y9 r1 \ 示波器 : 安捷伦 54621D 然后速度是2.725MHz 呵呵 看来流水线还是起了作用了的 嘿嘿 ' Y% g. d" r# L/ x% T6 [3 \/ C + X7 V* B; I @: D! {/ i |
RE:STM32 GPIO口的速度是多少?含全部代码和显示图
GPIOC->BSRR = GPIO_Pin_10;* c6 G$ f* A7 }
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& g6 ]; Y9 k- ^# Q) z- n$ S" A4 g
我贴在博客的地址: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口的速度是多少?含全部代码和显示图