完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试使用我的STM32F4-DISC1(STM32F429)生成一个与Nintendo 64控制器接口的信号。我现在试图生成的信号仅为1us高,然后是1us low(无限重复)。 我面临两个问题:
|
|
相关推荐
8个回答
|
|
你为什么不用定时器和实现PWM呢?这将为您提供准确的波形,一旦正确设置定时器,该波形将无限制地运行。
|
|
|
|
可能是因为我之前从未做过这样的事情,这是我能够提出的方法。我会看看我能在PWM
|
|
|
|
您是否认为在180 MHz上运行时,从闪存中获取指令时您将处于等待状态?或者是从RAM运行的代码?
|
|
|
|
绝对值得为这个应用程序学习。
|
|
|
|
我非常熟悉AVR和PIC上的asm以及每条指令需要多少个周期。所以我可以对你的asm程序的行为做出有根据的猜测。
你得到3.5μs周期的使你感到很困惑,你的代码看起来也很奇怪。 这里有几件我无法理解的事情: 你不是100%确定#0xe0001000甚至是DWT BASE,为什么你不确定?不是那样的......你应该......确定吗? 你想要等待180个周期,但每次循环你的等待循环,你执行6个指令,其中4个指令,我认为每个指令1个周期。另外2个是每个指令2个周期。这是8个周期。你甚至连续两次打电话给nop .. 你永远不会在等待循环中增加r6,你永远不会使用str指令来更新循环计数。这意味着根据您的代码,您甚至无法离开等待循环,因为没有任何变化。 根据您的逻辑分析仪,您确实离开了循环,这是您无法做到的。这意味着: 这个问题是一个笑话,哈哈,好笑话。 或者在后台有一个中断改变r6或循环计数,你不知道它。 或者你知道它并决定不与我们分享。 或者看门狗定时器正在开始并让你走出循环。 或者这不是您的实际代码。 或CMP指令向后,您将立即离开,这将显示在您的第一个逻辑分析仪图形中,然后STM变得有感知并且理解您想要一个方波并且做出最佳尝试并且只能得到一个方波周期为3.5μs。感觉很差,它正在尽力而为。我永远不会忘记你,你是有感觉的STM。 如果您想制作周期为2μs的方波,请使用合适的定时器。这意味着在您等待期间,您可以执行其他过程。如果你想计算循环中的所有内容,那么与使用中断相比,你实际上是在冻结 CPU。 由于这将与着名的 Nintendo 64控制器接口,是不是有一些库?为什么看,有一个Arduino。 我给你的建议是: 将上面的库从Arduino移植到STM32F429,或者移植该库。 将STM32F429放在一个盒子中,当需要180 MHz微控制器时使用它。获得一个Arduino并使用该库并称它为一天,那里有大量的arduino克隆。 以文本格式(而不是图像)发布您的实际代码。 研究如何在STM32F429上使用中断。 |
|
|
|
谢谢你的回答。很抱歉,我完全省略了上述代码使用循环计数器的事实。在评论中,一段时间后,我写了“可能”,因为我刚刚从反汇编中获取了代码。循环计数器在init部分初始化,然后0xE0001004包含从那时起经过的循环计数。
|
|
|
|
我也想过使用arduino,我只是想用现在的东西来工作而不是买新的东西。我意识到使用arduino可能会更容易。
|
|
|
|
你想要做的事听起来像是开车去洗手间。有点矫枉过正,不必要的困难,很可能只会妨碍你。严肃地说,对任何给定的问题使用正确的工具。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
806 浏览 1 评论
842 浏览 0 评论
MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记
614 浏览 0 评论
自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?
1428 浏览 2 评论
1644 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 12:51 , Processed in 0.635319 second(s), Total 68, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号