我在代码中看到的最明显的问题是,在为相应的外设启用时钟之前,您正在写入GPIO寄存器。
如果尚未启用时钟,外设将无法正确响应。在尝试对外围设备执行任何操作之前,请启用所有外设时钟。
尽管如此:ODR和BSRR / BRR之间的差异很小。但是,如果只需要更改一位,则单次写入BSRR(或BRR)比使用ODR上的读取/修改/写入周期更快,并且使用的代码空间更少。但是,如果您确实想要立即设置整个端口的状态,或者需要检查当前输出状态,则可以使用ODR。
我在代码中看到的最明显的问题是,在为相应的外设启用时钟之前,您正在写入GPIO寄存器。
如果尚未启用时钟,外设将无法正确响应。在尝试对外围设备执行任何操作之前,请启用所有外设时钟。
尽管如此:ODR和BSRR / BRR之间的差异很小。但是,如果只需要更改一位,则单次写入BSRR(或BRR)比使用ODR上的读取/修改/写入周期更快,并且使用的代码空间更少。但是,如果您确实想要立即设置整个端口的状态,或者需要检查当前输出状态,则可以使用ODR。
举报