问题标签 [pic32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何在 MPLAB Harmony 框架中的两个应用程序(状态机)之间交换数据?
我正在使用 MPLAB Harmony 框架实现并行运行的多个状态机,但是当另一个应用程序状态机进入特定状态时,我的一些状态机需要获取消息。考虑到任何“正确”或框架提供的在框架中的状态机之间进行这种简单数据交换的方式,我找不到任何信息。
所以基本上,我如何将有关状态机移动到特定状态的事件的信息(布尔类型信息,处于特定状态或不处于特定状态的两个可能值)交换到另一个应用程序状态机,其操作取决于状态另一个状态机。是否有框架提供的方式来实现这种简单的信息交换?我正在用 C 语言为 32 位 Microchip 微控制器编写应用程序。
c - 我可以使用预处理器使这个更清晰吗?
我正在为我的 Pic32 编写一个小源文件函数,但我被困在一件事上。它基本上是一个实用程序,应该将char
传入数据存储到缓冲区中,然后,如果'\r'
收到,它将缓冲区与命令列表(在数组中names
)进行比较,如果找到匹配项,则返回项目的索引。
这部分来自标题:
在主文件中,有一个大开关:
现在,为了更清楚起见,我想使用原始名称(如 )而不是 1、2、...,case KORR: case ADC:
所以我为它们中的每一个都写了定义
但我不喜欢那个解决方案,因为我想在更多项目中使用这个源文件,并且每个项目都有不同的命令列表。有什么办法可以做到这一点?最好的办法是在预处理器中创建数组名称,但我怀疑这是否可能。我正在考虑使用 enum 类型(它与命令列表具有相同的项目names
),但我不确定它会如何进行。
linker - 引导加载程序不适用于 278kb 大小的十六进制文件?
我已经为我的项目创建了 USB_DEVICE 引导加载程序。因为当有效闪存地址 0x9D061000 上写入数据时,我会触发引导加载程序。在我的应用固件中,我正在初始化闪存,然后在地址 0x9D061000 上写入数据以进入固件升级模式。我的链接器脚本附在下面。我的固件大小约为 278kB。我的其他具有相同链接器但大小 <100KB 的固件在引导加载程序中运行良好。是十六进制文件大小错误吗?还是我限制了链接器文件中的地址。我不知道如何编辑链接器文件,也没有任何参考或指南来编辑它。
注意:我将粘贴的 .ld 链接器文件复制到 txt 文件。
我正在使用 PIC32MX795F512L、MPLABx3.40、Harmony 版本 1.7.1 和 XC32 编译器版本 1.42
uart - PIC32MX Clicker UART 问题
我正在使用 PIC32MX Clicker(PIC32MX534F064H 微控制器)通过 UART 传输数据,并使用 USB 到串行转换器以 115200 的波特率在 PC 上接收数据。
当我尝试通过 PIC32 发送数据并在我的 PC 上读取时,我收到了数据,但数据不同。请参阅下面的代码片段。如果有人能建议我修改什么以使 uart 工作,那就太好了。谢谢
embedded - 发布版本中缺少 MPLAB 8.92 校验和
我正在准备在工厂进行编程的 PIC32MX 项目,我希望将校验和与 .hex 文件一起发送,以便他们能够在最后验证 .hex。
如果我在调试配置中编译程序 MPLAB 8.92 完成后会显示通常的校验和,如果我选择发布配置,则校验和仅显示 0x0000。
有没有办法强制 MPLAB 向我显示校验和?或者,是否有任何程序我可以下载并运行我的十六进制以获取校验和?
节点
c - PIC32 SPI 不工作
我试图让 SPI 在 PIC32MX250F128D 上工作,但运气不佳。
我尝试了 8 位模式和 32 位模式,但我没有得到所有数据或根本没有数据。
我正在尝试使用 4MHz SPI 来驱动 WS2812 ledstrip。
这是我的代码:
目前没有任何东西从控制器中流出。你们中有人知道出了什么问题吗?
劳伦斯
hardware - PROTEUS:如何从不受支持的编译器添加二进制固件?
在 ISIS 设计工具中,有许多编译器选项,以及微控制器系列及其变体,我们可以使用它们在 Proteus IDE 中执行编译和仿真。
但是,尽管可以安装默认情况下未配置的其他编译器,但许多其他编译器没有选项,例如 Microchip 的 PIC32。
有什么办法吗?
c - PIC32 - PWM 和正弦波
我正在尝试制作一个生成正弦波的程序,该程序将通过被动加法器输出,从而使微控制器在我按下按钮时播放声音。
我已经让 PWM 工作,并且可以使用常数值播放音符,但我想使用正弦波而不是常数。
这是我到目前为止提出的代码:
当我按下按钮时,夏天开始嗡嗡作响,每次按下按钮时都会以不同的速度滴答作响。有时我会得到干净的音调,所以我觉得我有点接近解决方案。是计算机以交替速度运行的问题吗?也许解决方案是在某处添加另一个计时器?
c - pic32mx230 spi 字节数
下面这个我为 pic32mx230 SPI 模块和谐设计制作了新代码,我需要发送 96 个字节的
寄存器值,并且每 3 个字节开始 CS 将从低到高,谁能帮助
我们在哪里我错了?
谢谢
名称
arduino - 在 arduino uno 上使用 pic32prog 对 pic32mx250f128b 进行编程
我目前正在尝试在pic32mx250f128b中刻录 pinguino 引导加载程序,该引导加载程序与 arduino uno 兼容 5V。我想试试pic32芯片,但我现在没有pickit3,我只能访问pickit2。
因此,要刻录引导加载程序,我使用的是 arduino uno,并使用 pic32prog 中的 bitbang 草图尝试刻录它。
对于接线,我这样做了:
- 所有 VDD 和 VUSB3V3BUS 引脚都连接到 arduino uno 的 3V3 稳压器。
- 所有 VSS 引脚都连接到 arduino uno 的地。
- Arduino D2 (PGC) 直接连接到 PGEC1
- Arduino D3 (PGD) 直接连接到 PGED1
- Arduino D4 (MCLR) 直接连接到 MCLR
但实际上,当我启动 pic32prog 时,我总是有这个输出:
我还尝试了 PGEC2/PGED2 和 PGEC3/PGED3 这对夫妇。
我还没有尝试使用晶体,但我认为从我读到的内容来看,ICSP 编程不需要它。
现在这是我在面包板上所做的:
我不知道是什么导致了这个检测问题,
非常感谢您的帮助 :)
编辑:我尝试了几件事,这就是我所在的位置:
- 我在 MCLR 上添加了上拉电阻,在 VDD 引脚上添加了电容器,以及其他推荐:仍然是错误
No target found
。 - 我看到 pic32prog 添加了与 pickit2 的兼容性,所以我尝试了一下:这次检测到了 pic,但我收到了这个错误:
Unknown CPUID : ffffffff.
我还尝试在 pickit2 上使用新的 pic32mx250,以确保它不是第一个损坏的。 - 最后,为了重新检查我的连接,我找到了另一个版本的数据表。在这个中,PGECx 和 PGEDx 引脚似乎不兼容 5V...-> 所以这次我将使用 3.3v 兼容电路进行测试