transyl 发表于 2014-9-1 05:26:57

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

 各位前辈,我在使用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;
     }
   }
}
 

发表于 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.
页: [1]
查看完整版本: STM32F205 电平翻转速度过慢求指点