你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 GPIO口的速度是多少?含全部代码和显示图

[复制链接]
得蜜 发布时间:2008-11-28 14:59
吃过晚饭 忽然想测试一下GPIO口的速度
使用的库函数   不是裸奔 晶振8M   9倍频

RCC_HCLKConfig(RCC_SYSCLK_Div1);

//设置高速 AHB 时钟(PCLK2)
RCC_PCLK2Config(RCC_HCLK_Div1);

//设置低速 AHB 时钟(PCLK1)
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;
   GPIO_Init(GPIOC, &GPIO_InitStructure);

   while (1)
   {
   GPIO_SetBits(GPIOC, GPIO_Pin_10);
   GPIO_ResetBits(GPIOC, GPIO_Pin_10);
   }
   
示波器 : 安捷伦 54621D
用示波器看的速度是2.0MHz   呵呵 不知道有没有哥们用裸奔的方法测试了的 呵呵

 
 


 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
然后力哥裸奔的测试结果是:
裸奔测了一下

示波器显示是 2.768M Hz

固纬 GDS-806S 示波器

while(1)
   {
LED1_OFF;
LED1_ON;
   }

 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
力哥继续测试 考虑上流水线
继续裸奔
示波器显示达到 4M Hz

固纬 GDS-806S 示波器

   while(1)
   {
LED1_OFF;
LED1_ON;
LED1_OFF;
LED1_ON;
.................................................(200行重复)
LED1_OFF;
LED1_ON;
LED1_OFF;
LED1_ON;
   }

 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
然后我也把流水线考虑进去 继续使用固件库的方式
呵呵 我也在循环体内部加了N句 也考虑了流水线

   while (1)
   {
   GPIO_SetBits(GPIOC, GPIO_Pin_10);
   GPIO_ResetBits(GPIOC, GPIO_Pin_10);
   GPIO_SetBits(GPIOC, GPIO_Pin_10);
   GPIO_ResetBits(GPIOC, GPIO_Pin_10);
   ................ 中间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);
   }

 
示波器 : 安捷伦 54621D
然后速度是2.725MHz   呵呵   看来流水线还是起了作用了的 嘿嘿



 
收藏 评论19 发布时间:2008-11-28 14:59

举报

19个回答
sonicll 回答时间:2008-11-28 16:18:45

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

用固件库函数肯定会慢吧,库函数里都有检查参数的函数。直接对寄存器赋值操作试试看
GPIOC->BSRR = GPIO_Pin_10;
GPIOC->BRR = GPIO_Pin_10;
jklh-95293 回答时间:2008-11-30 01:51:17

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

直接利用寄存器操作肯定快多了,但我没有示波器,你再实验一下,看看结果如何
zhyf 回答时间:2008-12-10 15:50:29

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

感谢分享!
littleworm-9649 回答时间:2008-12-11 11:03:57

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

貌似是我的原创啊
原贴地址:http://www.stmfans.com/bbs/viewthread.php?tid=1051&highlight=GPIO
我贴在博客的地址:http://hi.baidu.com/smallwormsea/blog/item/6c00832bca02c7fce6cd4040.html
aleyn 回答时间:2008-12-11 20:17:20

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

看到虫子的示波器在上面了。
得蜜 回答时间:2008-12-11 23:00:35

回复:STM32 GPIO口的速度是多少?含全部代码和显示图

楼上二位给我发个站内短消息吧。
cangbai 回答时间:2008-12-24 14:30:29

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

zangdianjun 回答时间:2008-12-24 15:13:47

RE:STM32 GPIO口的速度是多少?含全部代码和显示图

这个还真没试过,不过用寄存器直接操作,速度肯定会更快的!
yy_kernel-10076 回答时间:2008-12-25 11:32:55

回复:STM32 GPIO口的速度是多少?含全部代码和显示图

这个不是IO速度好不好,这个是IO控制速度,和控制IO的指令多少有关的啊。。。
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版