问题标签 [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 - Microchip 射频调制器问题
我正在使用一对 MRF24J40 无线电芯片来让一个 PIC32 微控制器板通过射频传输与另一个板进行通信。我的所有代码都可以正常编译,但我不断收到与此代码相关的错误。
基本上我已经尝试了地球上的所有方法来更改变量packetType
,secEn
等ackReq
的值。我尝试在声明后直接更改值,但这似乎是位长度,而不是值。代码(直接来自微芯片的网站)有注释说 1 = this 和 0 = that 但我还没有找到可以更改这些值的任何地方。任何熟悉这些 MRF24J40 芯片的人的帮助将不胜感激。谢谢你。
tcp - 最大数量 使用 PIC32 入门工具包在 TCP/IP 通信上可以进行字节传输
我正在使用PIC32
入门套件与我的主机软件进行以太网通信。
主机软件 - 服务器,PIC32 - 客户端
我想知道,每个 SEND API 调用我可以发送多少个最大字节。
截至目前,我尝试发送 130 个字节,但主机只能接收 125 个字节。如果我在主机发送任何数据之前尝试发送超过 125 个字节,发送 API 将返回错误,提示 FIFO 已满。
但是,如果主机发送任何数据,我可以再次发送 125 个字节。
我的应用程序只需要从 PIC32 传输以 KB 为单位的数据。
这是代码 -
我们怎样才能增加没有。PIC32
传输字节数,入门套件有限制吗?
ssl - 用于在 PIC32MZ 上运行的以太网连接的 MPLAB X 示例项目
我已经下载并安装了 MPLAB X IDE v2.05 和最新的 Harmony v0.8。但是,我没有找到任何可以使用 PIC32MZ EC 入门套件演示以太网连接的示例项目?我的目标是尝试 SSL 连接,但我想从头开始。
有什么提示吗?亲切的问候,让
c - PIC32 WDT 复位在某些 PIC32 上不起作用
我有一个 PIC32 复位功能:
它适用于 PIC32MX360F512L,但不适用于 PIC32MX695F512L。它只是永远旋转。谁能告诉我为什么,或者建议另一种方法来重置我的处理器?
i2c - Microchip PIC - 灵活的芯片间通信总线
我正在设计灵活的模块-模块总线。
基本上,每个模块都有一个可能属于 PIC24 / PIC32 系列的微控制器。
总线将通过 RJ11 连接器运行,并且必须便宜。
它需要以下功能: - 没有主/从配置,但有仲裁(如 CAN) - 自动寻址 - 可以翻转的 2 或 1 根线 - 正确的数据速率。
最初的想法是使用带有第三条线路的 I2C 总线进行寻址。虽然出于布线的原因,如果总线交叉并且 I2C 微芯片模块在引脚上有硬位置,总线应该支持重新分配线路。
SPI 显然不是解决方案。CAN模块可以工作,但8字节的限制和收发器的需要很烦人。LIN 需要主控。
现在我正在寻找一种方法以某种方式使用具有环回模式的 UART 模块,因为 PPS 可以重新分配引脚。
另一种解决方案是从头开始创建总线并对所有内容进行编码,但这会很耗时。
有什么经验和解决办法吗?
谢谢
c - PIC32 取消引用指针可能的编译器错误
我正在使用 XC32 编译器为 PIC32MX795F512L 编写一些代码。我需要从作为 void* 传递给函数的缓冲区中读取数据。我需要将数据读取为无符号 32 位整数数组。问题是当我将 void* 转换为 uint32* 并尝试读取该数组的索引 0 处的值时,处理器会调用一般错误处理程序,而如果我将 void* 转换为 uint8* 并执行一些操作位操作以获得相同的数据,它可以正常工作。
代码如下所示:
如果您将代码更改为#if 0
按预期工作,我在循环中#if 1
看到"Debug 0"
并打印了很多次。"Debug 1"
但是如果你保持原样,“Debug 0”只会打印一次,然后代码会跳出循环进入编译器设置的cpu通用错误处理程序。这是 XC32 编译器中的错误,还是我缺少什么?
c - Pic32 引导加载程序写入内存
我在获取 PIC32MX795F512L 工作的引导加载程序时遇到问题。
我基于微芯片网站上的示例代码。
这是我应该写入内存的代码部分,到目前为止我已经验证了引导加载程序(解析十六进制文件很好,数据到达这一点但没有写入内存):
正在加载的程序地址示例为:0x9D033358,数据为 2403000E
配置位在代码中设置,如下所示:
地址设置
1FC02FF0 FCFFFFFF
1FC02FF4 FFF8FFDF
1FC02FF8 FF69CC5B
1FC02FFC 7FFFFFFF
无法告诉您所有位的作用,但闪存位设置为可写并且代码保护已禁用。
c - pic32 跳出引导加载程序导致一般异常
我有一个 mplabx 项目,其中包含 PIC32MX795F512L 的自定义引导加载程序和应用程序。在整个开发过程中,我一直从引导加载程序跳转到应用程序,使用以下行没有问题:
whereAPPLICATION_RESET_ADDRESS
是一个宏,其中包含我的应用程序的重置处理程序的地址。在最近对引导加载程序进行了一些修改之后,我突然在执行该行之后和进入应用程序功能之前的某个时间开始进入通用异常处理main
程序。奇怪的是,如果我在该行上设置一个断点,然后在中断后继续它工作正常。此外,如果我将跳转到应用程序的方式更改为:
它毫无问题地跳转到应用程序,这真的很令人困惑,因为生成的程序集是((void (*)(void))(APPLICATION_RESET_ADDRESS))();
:
和生成的程序集:
是
所以这两种方法都使用相同数量的指令,并且都使用 JALR 跳转,两者之间的唯一区别是它们如何将指针加载到寄存器中。有人有什么想法吗?
c - pic32 起始位不清除 -- 基本 I2C 设置
我是嵌入式编程的新手,正在尝试让我的第一个 I2C 项目工作。我正在使用 PIC32MX795F512L。我非常关注 PIC32 上 I2C 的微芯片数据表。我遇到的问题是从未从 I2C1STAT 寄存器中清除 S 位。我实际上不清楚我是否必须这样做,或者它是否在 Start 事件结束时自动完成,但现在我正在尝试手动清除它。但是,我所做的任何事情似乎都没有效果。如果需要更多信息以便更容易理解正在发生的事情,请告诉我。我正在使用 PICKIT3,所以我也可以获得调试信息。我知道主中断发生,S 位被设置,我退出中断代码并挂在 while 语句检查 I2C1STATbits.S。
编辑:我正在编辑这篇文章以使用我的新代码而不是旧代码。我现在使用的是 20MHZ 外设时钟。只是我今天尝试的许多事情中的一件不起作用。延迟只是 256 毫秒的延迟。我知道超长,但很快。
谢谢你的帮助。
c - 指向 const 整数数组的指针
我在嵌入式系统中创建了一个菜单结构,如下所示:
因此为早期原型设计实例化:
以期稍后初始化功能/菜单指针等
它可以用 GCC 编译,但是当代码运行时(已经启动并运行了一个非动态菜单系统)IDE(MPLABX)正在努力查看 MainMenu 的内容,当我尝试运行函数 DisplayMenuItems 时(如下所示)我无法通过它
任何人都可以发现我定义结构并实例化它的方式有什么问题吗?
我计划使用以下函数来显示使用结构的项目:
GCC 可能会让我摆脱一些我不应该在这里做的事情,所以任何提示都值得赞赏!
非常感谢