高级安全大使 发表于 2024-2-28 20:13

灵动MM32F0130时钟PLL到72Mhz,IO口发送脉冲,低电平变宽

MM32F0130时钟PLL到72MHz,IO口发送脉冲,低电平异常变宽,求解决方法大家好,我在使用灵动MM32F0130系列MCU时遇到了一个问题,希望得到一些帮助。我将时钟PLL配置为72MHz,并使用以下C程序和汇编程序进行GPIO口脉冲发送测试,但发现低电平部分的脉冲宽度异常变宽。C程序:
while(1){    GPIOB->BSRR = GPIO_Pin_3;    GPIOB->BRR = GPIO_Pin_3;}汇编程序:    AREA ctesr,CODE,READONLY    EXPORT scan_test      GPIOB_BSRR   EQU   0X48000410GPIOB_BRR      EQU   0X48000414scan_test    MOVS   R1,#0X01    LDR    R2,=GPIOB_BSRR    LDR    R3,=GPIOB_BRRSENDS    STR    R1,    STR    R1,         B      SENDS是否有人遇到过类似的问题?这种低电平变宽的情况可能是由于时钟不稳定导致的吗?我已经检查了时钟PLL的配置,但问题仍然存在。请教各位大神,有什么可能的原因和解决方法吗?






七毛钱 发表于 2024-2-29 10:22

检查汇编程序中的指令是否正确。特别注意B指令(无条件跳转指令),它应该指向程序的末尾或正确的循环点。

laocuo1142 发表于 2024-2-29 11:00

可能是时钟稳定性问题

flycamelaaa 发表于 2024-2-29 14:00


[*]如果您使用的是固件库函数来控制IO口,请确保您使用的库版本是最新的,并且没有已知的相关问题。

powerantone 发表于 2024-2-29 15:01

使用示波器检查IO口上的信号,观察是否存在外部噪声或干扰。

stormwind123 发表于 2024-2-29 16:12

如果您的代码中包含软件延时,检查它们是否正确实现。不正确的延时可能会导致脉冲宽度异常。
页: [1]
查看完整版本: 灵动MM32F0130时钟PLL到72Mhz,IO口发送脉冲,低电平变宽