|
吃过晚饭 忽然想测试一下GPIO口的速度 使用的库函数 不是裸奔 晶振8M 9倍频 RCC_HCLKConfig(RCC_SYSCLK_Div1);3 _% a1 P3 K8 E; j$ o3 G" x 1 q( C- ^3 p* {( m! B //设置高速 AHB 时钟(PCLK2). X, B! i4 ~; L. y; b0 h/ h# { RCC_PCLK2Config(RCC_HCLK_Div1);/ f7 @: Z4 s5 f% W% Z6 Y + S% f: X) k7 j //设置低速 AHB 时钟(PCLK1)( ^0 h3 P6 i6 s RCC_PCLK1Config(RCC_HCLK_Div1);8 ]3 N! |$ F" e9 a% F: O( M: x GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); ) B: W" @8 z) k+ V# i1 W while (1)- z3 R/ @$ |/ Z, B# e { GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);; g. s+ ?$ ?$ m$ N$ J } - M) i* D$ E. G7 g+ J/ e 示波器 : 安捷伦 54621D / C; `* D6 Q1 I+ e- L 用示波器看的速度是2.0MHz 呵呵 不知道有没有哥们用裸奔的方法测试了的 呵呵0 o" w9 I2 f1 ~# G1 y $ _) \0 h5 u1 l) x4 B& N 6 _' \5 O% V- I& T! j$ p' z+ } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// T9 t/ C$ H G' c 然后力哥裸奔的测试结果是: 裸奔测了一下- F" F0 ~3 @% |# Q% \ 示波器显示是 2.768M Hz 固纬 GDS-806S 示波器 7 E4 X* [- _, W/ Z0 p7 E8 r7 E while(1)' v5 u4 k* K9 \, I9 s { LED1_OFF; LED1_ON; }7 q) h X. I6 W 8 N0 ^4 H5 A7 P; R //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 力哥继续测试 考虑上流水线4 W2 Z9 k8 K5 N9 l5 z# |1 `$ [( e z 继续裸奔" u ?) i! z- j8 Q. Y8 E' f 示波器显示达到 4M Hz 固纬 GDS-806S 示波器$ k0 Z4 U8 L# n while(1) { LED1_OFF;* X7 A: v/ j7 v" U7 `6 D* O, U LED1_ON; LED1_OFF; LED1_ON;3 h, H* y/ P% [ .................................................(200行重复)6 r; f q1 {; D8 _$ A LED1_OFF; LED1_ON;$ c O2 \. ?9 `: V: ~0 q- O& N LED1_OFF; LED1_ON; }( r9 @2 w8 ~1 J! _- G( b ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////) Y, r T- K& U9 c5 h ; ?* `. h1 ?) `) i: T 然后我也把流水线考虑进去 继续使用固件库的方式* C. X8 E- z" C, x% a0 h2 r( s2 d) } 呵呵 我也在循环体内部加了N句 也考虑了流水线 . C4 \" f3 I7 N/ E! b while (1) { GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);& h' O& }6 i" @* B; ] GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10); ................ 中间200句1 s7 E. D# x& i' Y$ U9 A GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);8 ^3 i! W* N+ h* E9 N GPIO_SetBits(GPIOC, GPIO_Pin_10);* `4 }/ @& Z6 U# `, C$ A- @, B5 @ GPIO_ResetBits(GPIOC, GPIO_Pin_10); } 示波器 : 安捷伦 54621D 2 @+ O* f, Q, {( X3 N, l 然后速度是2.725MHz 呵呵 看来流水线还是起了作用了的 嘿嘿( S, z. H1 k( z, p$ ^: ]7 S, d- w % }: [& z3 M; ^ ' b# t3 W7 S0 t$ @8 O |
微信公众号
手机版
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
我贴在博客的地址: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口的速度是多少?含全部代码和显示图