STM32F4发现GPIO信号生成问题

2019-07-14 17:36发布

我正在尝试使用我的STM32F4-DISC1(STM32F429)生成一个与Nintendo 64控制器接口的信号。我现在试图生成的信号仅为1us高,然后是1us low(无限重复)。我面临两个问题:
  • 我似乎无法正确工作。主时钟应为180 MHz(由“获取时钟”功能报告,抱歉忘记全名)。这应该意味着每微秒有180个周期,对吗?但是当我将GPIO设置为高电平时,等待180个周期(180 nops)然后再将其设置为低电平,3.5us已经过去。我在这里想念的是什么?
  • 我使用下面的代码生成的信号在一段时间后运行良好,但最初没有。如果我用逻辑分析仪来看它,那么第一次捕获将总是如下所示: 1.png 如您所见,信号仅在很短的时间内(约0.17us)很高。虽然没有修改代码,只需再次捕获,信号就会变为: 2.png 在这两种情况下,代码都没有改变,等待180个周期。如果相关,我正在以200 MHz的采样频率使用Open Bench Logic Analyzer。初始化代码
3.png 信号生成代码 4.png 0xE0001004是循环计数器的地址,它会自动更新。所以不需要r6在wait循环中进行修改。另请注意,我尝试使用不同的技术进行等待,包括仅使用180个NOP。这大致相同。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。