番外篇 - GPIO 配置里的Maximum output speed

Maximum output speed: 指的是引脚输出驱动器的翻转速率(slew rate),也就是引脚电平在高低之间切换时,边沿能跳得多快(上升/下降时间多短),而不是指你能多快地去翻转这个引脚

打个最贴切的比方——把它想成拧水龙头:

  • 你多久开关一次水龙头 这是你程序里翻转引脚的频率(闪灯快慢),由你的代码决定,跟这个设置无关
  • 你是猛地一拧还是慢慢拧 这才是 Maximum output speed 管的东西

不论你是猛拧还是慢拧,最后流出来的水是一样多的(电平照样到 3.3V 或 0V) 区别在于: 猛地一拧,水管会”哐”地震一下; 慢慢拧,水流则平稳没声音 电路里也是一模一样的道理, 如果边沿跳得太猛,会产生电磁干扰和信号上的振铃/过冲

在下面这张图中, 两条波形开关的次数完全一样(频率相同),唯一的区别就是每次跳变的陡峭程度, 看图就很清楚了

Pasted image 20260620201823

那为什么不一律选高速,跳得越快越好?

因为陡峭的边沿有缺点:

  • 跳得越陡(速度高):好处是能输出很快的信号(比如高速 SPI、高频时钟);坏处是电磁干扰(EMI)更大、更费电,而且容易在信号上产生过冲和振铃
  • 跳得越缓(速度低):信号更干净、更省电、干扰更小;坏处是不适合用在需要很快的信号上

按你实际需要的信号速度来配,够用就行,别盲目往高调

如果是使用 PC13 点灯:LED 亮灭对芯片来说慢得像蜗牛,根本不需要陡峭的边沿,所以 CubeMX 里配成 Low 是最合适的又省电、干扰又小

做高速通信(SPI/I2S、几十 MHz 的时钟输出之类)时,才需要把这个档位往上调