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

STM32F205 电平翻转速度过慢求指点

[复制链接]
transyl 提问时间:2014-9-1 05:26 /
 各位前辈,我在使用STM32F205,功能是读取端口的高低电平信号,该信号是频率2MHz的方波,我的输出要求和该信号一致.
系统时钟使用内部晶振HSI,设置为120MHz,但是我从示波器观察,单片机输出的方波和该信号相比,前后沿相差几us,而且输出的波形前后沿一直在抖动,抖动的前后幅度也有几us.
于是我写了下面一段程序,先不读端口,只是通过PB5脚输出翻转电平.通过PA8脚 MCO1观察到系统时钟的确是120MH,但观察示波器,输出波形周期只有400ns,也就是说频率远没有达到120MHz.虽然下面的方法比较粗略,可是也不应该慢到这种程度吧.
麻烦各位前辈帮忙看一下,我的这段程序写法上还有什么问题吗?如果各位前辈手头上恰好有STM系列的片子,能帮忙写一下类似的程序并测测看输出波形周期大概是多少吗?
真是不好意思.最近急着要交东西,一直卡在这里了.还望各位前辈多多指点,万分感谢了
unsigned int r;
int main(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    while(1)
   {
      if(r==1)
     {
         GPIO_SetBits(GPIOB,GPIO_Pin_5);
         r=0;
     }
     else
     {
         GPIO_ResetBits(GPIOB,GPIO_Pin_5);
         r=1;
     }
   }
}
 
收藏 评论1 发布时间:2014-9-1 05:26

举报

1个回答
废鱼 回答时间:2014-9-1 10:02:15

RE:STM32F205 电平翻转速度过慢求指点

按照硬件手册上说的,应该是最大60Mhz
To provide fast I/O handling, the GPIOs are on the fast AHB1 bus with a clock up to 120 MHz that leads to a maximum I/O toggling speed of 60 MHz.
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版