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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版