问题标签 [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.

0 投票
1 回答
300 浏览

c - 如何在 MPLAB Harmony 框架中的两个应用程序(状态机)之间交换数据?

我正在使用 MPLAB Harmony 框架实现并行运行的多个状态机,但是当另一个应用程序状态机进入特定状态时,我的一些状态机需要获取消息。考虑到任何“正确”或框架提供的在框架中的状态机之间进行这种简单数据交换的方式,我找不到任何信息。

所以基本上,我如何将有关状态机移动到特定状态的事件的信息(布尔类型信息,处于特定状态或不处于特定状态的两个可能值)交换到另一个应用程序状态机,其操作取决于状态另一个状态机。是否有框架提供的方式来实现这种简单的信息交换?我正在用 C 语言为 32 位 Microchip 微控制器编写应用程序。

0 投票
2 回答
112 浏览

c - 我可以使用预处理器使这个更清晰吗?

我正在为我的 Pic32 编写一个小源文件函数,但我被困在一件事上。它基本上是一个实用程序,应该将char传入数据存储到缓冲区中,然后,如果'\r'收到,它将缓冲区与命令列表(在数组中names)进行比较,如果找到匹配项,则返回项目的索引。

这部分来自标题:

在主文件中,有一个大开关:

现在,为了更清楚起见,我想使用原始名称(如 )而不是 1、2、...,case KORR: case ADC:所以我为它们中的每一个都写了定义

但我不喜欢那个解决方案,因为我想在更多项目中使用这个源文件,并且每个项目都有不同的命令列表。有什么办法可以做到这一点?最好的办法是在预处理器中创建数组名称,但我怀疑这是否可能。我正在考虑使用 enum 类型(它与命令列表具有相同的项目names),但我不确定它会如何进行。

0 投票
0 回答
46 浏览

linker - 引导加载程序不适用于 278kb 大小的十六进制文件?

我已经为我的项目创建了 USB_DEVICE 引导加载程序。因为当有效闪存地址 0x9D061000 上写入数据时,我会触发引导加载程序。在我的应用固件中,我正在初始化闪存,然后在地址 0x9D061000 上写入数据以进入固件升级模式。我的链接器脚本附在下面。我的固件大小约为 278kB。我的其他具有相同链接器但大小 <100KB 的固件在引导加载程序中运行良好。是十六进制文件大小错误吗?还是我限制了链接器文件中的地址。我不知道如何编辑链接器文件,也没有任何参考或指南来编辑它。

注意:我将粘贴的 .ld 链接器文件复制到 txt 文件。

application_linker_file.txt

bootloader_linker_file.txt

我正在使用 PIC32MX795F512L、MPLABx3.40、Harmony 版本 1.7.1 和 XC32 编译器版本 1.42

0 投票
1 回答
235 浏览

uart - PIC32MX Clicker UART 问题

我正在使用 PIC32MX Clicker(PIC32MX534F064H 微控制器)通过 UART 传输数据,并使用 USB 到串行转换器以 115200 的波特率在 PC 上接收数据。

当我尝试通过 PIC32 发送数据并在我的 PC 上读取时,我收到了数据,但数据不同。请参阅下面的代码片段。如果有人能建议我修改什么以使 uart 工作,那就太好了。谢谢

0 投票
1 回答
287 浏览

embedded - 发布版本中缺少 MPLAB 8.92 校验和

我正在准备在工厂进行编程的 PIC32MX 项目,我希望将校验和与 .hex 文件一起发送,以便他们能够在最后验证 .hex。

如果我在调试配置中编译程序 MPLAB 8.92 完成后会显示通常的校验和,如果我选择发布配置,则校验和仅显示 0x0000。

有没有办法强制 MPLAB 向我显示校验和?或者,是否有任何程序我可以下载并运行我的十六进制以获取校验和?

节点

0 投票
2 回答
1122 浏览

c - PIC32 SPI 不工作

我试图让 SPI 在 PIC32MX250F128D 上工作,但运气不佳。

我尝试了 8 位模式和 32 位模式,但我没有得到所有数据或根本没有数据。

我正在尝试使用 4MHz SPI 来驱动 WS2812 ledstrip。

这是我的代码:

目前没有任何东西从控制器中流出。你们中有人知道出了什么问题吗?

劳伦斯

0 投票
1 回答
333 浏览

hardware - PROTEUS:如何从不受支持的编译器添加二进制固件?

在 ISIS 设计工具中,有许多编译器选项,以及微控制器系列及其变体,我们可以使用它们在 Proteus IDE 中执行编译和仿真。

但是,尽管可以安装默认情况下未配置的其他编译器,但许多其他编译器没有选项,例如 Microchip 的 PIC32。

有什么办法吗?

0 投票
1 回答
260 浏览

c - PIC32 - PWM 和正弦波

我正在尝试制作一个生成正弦波的程序,该程序将通过被动加法器输出,从而使微控制器在我按下按钮时播放声音。

我已经让 PWM 工作,并且可以使用常数值播放音符,但我想使用正弦波而不是常数。

这是我到目前为止提出的代码:

当我按下按钮时,夏天开始嗡嗡作响,每次按下按钮时都会以不同的速度滴答作响。有时我会得到干净的音调,所以我觉得我有点接近解决方案。是计算机以交替速度运行的问题吗?也许解决方案是在某处添加另一个计时器?

0 投票
1 回答
295 浏览

c - pic32mx230 spi 字节数

下面这个我为 pic32mx230 SPI 模块和谐设计制作了新代码,我需要发送 96 个字节的
寄存器值,并且每 3 个字节开始 CS 将从低到高,谁能帮助
我们在哪里我错了?

谢谢

名称

0 投票
2 回答
1020 浏览

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 兼容电路进行测试