第四篇 STM32H5笔记之GPIO翻转速率测试
一 选择GPIO
Nucleo板载的接口预留了这么多,可以随便找一个输出口做测试,这里就选F4吧
二 GPIO配置
看下GPIO_OSPEEDR寄存器,控制GPIO速度
速度一共分为四档
三 程序编写
/*Configure GPIO pin : PF4 */
GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
通过GPIO_SPEED_FREQ_LOW参数修改速度,同时配置时钟,让输出匹配到时钟的速度
四 测试情况
翻转程序注意有几点
1不要使用库函数测试,占用时间
2不要跳转到while测试也会占用时间
翻转测试,看下数据说手册 HSLV OFF见上图,是选项字节里的
GPIO_SPEED_FREQ_VERY_HIGH
HSLV OFF情况下测试
测试结果:
11 大概不到170MHz,GPIO_SPED_FREQ_VERY_HIGH
10 高速
01 输出到75MHz 左右 再大 波形就完全失真了
再增加翻转速度,波形就没了,如下图所示
00 输出50 60MHZ波形完全没有 降低波形测试
30MHZ波形也不行 继续降低
20MHZ波形差不多了
测试下来,感觉GPIO翻转速度真的很快,基本配置的速度足够快的话
hjl2832 发表于 2023-5-11 15:54 翻转的速度不应该这么测试,你应该还要测下它的上升和下降沿时间,加一起才是真正的GPIO有效翻转时间
是的 有效翻转速率肯定要测tf tr的
我这个只是表明翻转大致速度 你测上升和下降沿你就会发现根本测不出来手册里i的数据
本帖最后由 常见泽1 于 2023-5-11 22:26 编辑