你好
我正在使用 PWM 外设生成三相 PWM 输出。 PWM 计时器的超时事件会生成中断、并且在相应的 ISR 中、占空比会发生变化。
现在、我想使用 stdio.h 库函数与微控制器之间发送和接收信息。 在所有相关的初始化之后、我在一个空的 while (1)循环中有一条 printf 语句、该程序在等待下一个计时器中断时被限制在该语句中。 这是我输入的唯一 printf 语句。 因此、根据我的理解、这不应对 PWM 输出产生任何影响、因为它应在 ISR 运行时被中断和暂时挂起、然后在 ISR 完成后允许恢复。
但是、当我在示波器上查看它们时、PWM 输出会中断、当我关闭 CCS 中的调试会话时、从而移除微控制器和 CCS 控制台之间的连接(成功地)、PWM 输出返回到预期的运行状态。
那么、为什么会发生这种情况呢? printf 函数内是否有更高优先级的中断例程、这些例程不能被我的 PWM 计时器中断? 如何解决此问题、使其能够在不中断 PWM 的情况下将字符串打印到控制台?
感谢您花时间阅读。
此致
Josh