|
吃过晚饭 忽然想测试一下GPIO口的速度 3 Y1 h6 a0 z3 w5 r, f) y6 w) K& M 使用的库函数 不是裸奔 晶振8M 9倍频 3 d& ^6 }7 d4 P. O! _) c. c RCC_HCLKConfig(RCC_SYSCLK_Div1); 5 r* h6 i2 t! v7 B2 t3 H0 }7 f //设置高速 AHB 时钟(PCLK2) RCC_PCLK2Config(RCC_HCLK_Div1); |/ G" H: _! D) ? : w7 \6 f2 V1 a# |" ? //设置低速 AHB 时钟(PCLK1)/ Y Q) e/ ^$ j+ |) d RCC_PCLK1Config(RCC_HCLK_Div1); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;) m3 _& ?% o2 k3 C6 K) F0 X; \) ` GPIO_Init(GPIOC, &GPIO_InitStructure); 1 x, M- |6 s6 [6 Z( a* i8 e, i while (1)8 x6 V% D2 q* U: \3 J9 x { GPIO_SetBits(GPIOC, GPIO_Pin_10);0 q9 q5 Y: s' @ GPIO_ResetBits(GPIOC, GPIO_Pin_10); } ! Z8 L1 G6 |/ Y$ r 示波器 : 安捷伦 54621D / z$ \3 z3 c* ]+ G; _ 用示波器看的速度是2.0MHz 呵呵 不知道有没有哥们用裸奔的方法测试了的 呵呵 / Y( e, W6 z1 j" a - i. L, U/ C( m ; s( v2 I5 v6 w L) P9 @ " M/ C( H h8 U9 u7 H/ p9 H 5 i1 Z7 v; E6 L8 i8 Q; p ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3 ^' @2 B# ]& T M2 W O 然后力哥裸奔的测试结果是:! J9 O' E! r. l2 g+ m 裸奔测了一下- S& u( z& i z% ^. z: D # u3 l: C7 S( Y# X3 j2 ]6 } 示波器显示是 2.768M Hz 固纬 GDS-806S 示波器4 t* m% }% }, u8 l6 ]) x while(1) {! H4 r+ z' B2 e! `- h% k3 L6 z1 c LED1_OFF;2 X( O. R- |3 Y' ?" T3 ^' [6 y LED1_ON; }$ l! I+ h" E7 J7 A4 t) s $ D Y1 F4 P m //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 力哥继续测试 考虑上流水线 继续裸奔& m& T/ h0 w* T/ n9 y! t/ a 示波器显示达到 4M Hz' B _' F5 z3 o c% F6 S5 c$ Z ) b7 V- J# R% C' ? 固纬 GDS-806S 示波器4 I# ?: V2 S4 |9 W / s/ \3 s" J+ C: k1 Y! I4 E1 [6 H while(1)$ Y H3 M7 Y; p+ Q! W( E# _ {. u8 y# i) q# N3 t4 h7 g LED1_OFF; LED1_ON; LED1_OFF; LED1_ON; .................................................(200行重复)- ^+ f, o; z0 P- l/ ?/ f9 r% l7 _ LED1_OFF;+ q: I( e. G2 X, T1 Y; X8 J LED1_ON; LED1_OFF; LED1_ON;. V* N' }2 w0 {' }* Y0 { } 4 w E% j5 H; U& M /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 然后我也把流水线考虑进去 继续使用固件库的方式7 e$ q7 k( _2 a* h) C 呵呵 我也在循环体内部加了N句 也考虑了流水线# h% T- I0 j; W; c$ [! Y ' u! t+ b. R6 `9 T% `3 O5 W1 c4 v while (1)( V8 W+ I% z, A- b7 [. h, [: F { GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);+ V7 c* d; \4 Z! ^+ s GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);( l. J! W) a" h3 W$ P ................ 中间200句 GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10); GPIO_SetBits(GPIOC, GPIO_Pin_10); GPIO_ResetBits(GPIOC, GPIO_Pin_10);( n/ c* P% c+ i& d' _' V3 V% N }- F5 v1 X" ~7 {) X, \+ i 示波器 : 安捷伦 54621D 然后速度是2.725MHz 呵呵 看来流水线还是起了作用了的 嘿嘿( v7 L) o* A6 _2 i : m0 p8 X1 }6 Z, T! J9 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口的速度是多少?含全部代码和显示图