问题标签 [lpc]
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.
arm - 从 LPC2148 向手机发送短信
我昨天发布了一个类似的问题但是我无法编辑代码并发布更多问题,所以我在这里重新发布。我已将 gsm 调制解调器连接到 LPC2148,我正在向我的手机发送一条简单的消息“车辆”。我在两者之间添加了打印语句,以便我知道程序在哪里。它运行所有打印语句,但未发送消息!
所以这里是代码
主程序
gsm.c
c - 为 LPC1769 Cortex M3 编写 GPIO 中断处理程序
ARM Cortex-M3 是否有一个简单的 GPIO 中断示例?
我写了一些代码,但是不知何故中断似乎没有触发:
我一直在在线/GitHub 上搜索 LPC1769 Cortex M3 的简单 GPIO 中断示例,但没有产生任何结果。然而,似乎:
- 感兴趣的 GPIO 中断是
EINT_3
. - 当在用户代码中定义时,IRQ 处理程序
EINT3_IRQHandler
会被覆盖。
怎么了?
interrupt - LPC1768 GPIO 中断标志 - 即使未启用中断,它们是否已设置?
在 LPC1768 上,即使相应的中断启用位(在 IO{0, 2}IntEn{R,F}) 没有设置?这就是中断标志在我使用过的其他微控制器上的工作方式,但它似乎在这里不起作用,而且我在 LPC176x 用户手册中没有看到这种行为以一种或另一种方式定义。
我的用例是验证外部脉冲信号是否持续存在。我不需要通知发生的每个边缘,我只想定期检查一个标志以查看自上次检查以来是否检测到边缘。
lcd - GLCD 库:GLCD.H & UTILITY.H
我正在研究 GLCD 与 LPC2148 的接口。
请分享 GLCD 库的库:包含在程序中
其他共享路径我可以在哪里获得?
问候,维杰
serial-port - 如何在arduino上将lpc接口转换为串行
作为一个试图做硬件原型的硬件文盲软件人,将不胜感激这个答案。
我需要集成的硬件组件之一仅支持 lpc 接口。有没有办法让它与arduino一起工作?这个问题甚至有意义吗?我有什么选择?
我尝试对此进行一些研究,但根本不了解任何东西,也没有任何直接参考任何使这成为可能的东西。
arm - 将 ARM CM3 编程到 ROM 和 RAM
目前,我正在将我的业余项目升级为使用 ARM 而不是 Microchip 的 8 位微控制器。
但不幸的是我遇到了一些问题:
我不太了解编程方式的差异: - 编程到 ROM - 编程到 RAM(在我的情况下只有 32K)
我已经使用 IAR IDE 进行了一些“hello world”测试,其中编译/编程是使用我不担心的给定配置完成的。但我不喜欢 IAR IDE 和 IAR 编译器的 32K 限制,所以我决定建立一个新环境(参见下面的配置)。
设置好 Eclipse 环境后,使用 IAR 提供的示例,我设法将 ARM 编程到 RAM 中。但是当我想将 ARM 编程为 ROM 时,该程序似乎没有做任何事情。我使用了我相信对 ROM 或 RAM 做了某种映射的示例 makefile,我每次只需要定义其中一个。
我知道ROM是只读存储器,断电后不会为空,RAM速度更快,但每次都需要将程序下载到ARM。
我是否需要将我的程序分成 ROM 和 RAM 的一部分,或者我是否可以将所有内容编程到 ROM 中,以便 ARM 在通电时将代码重新映射到 RAM?
目前我正在使用以下配置:
- 代码源 GCC
- Eclipse C/C++
- Segger Jlink 程序员(GDB 服务器)
- CMSIS 或 LPCOpen 库(尚未完全工作)
- 恩智浦 LPC1766 Cortex M3
- Windows 8 64 位
- LPC1768 和 CMSIS 的 IAR 示例
- 来自 NXP 的示例:lpc17xx.cmsis.driver.library
有人可以帮助我了解 ROM 和 RAM 的不同用途,以及我应该如何设置我的编译器/makefile 以使用 ROM 和 RAM 内存。
最后,我希望能够将 ARM(我认为)编程到 ROM 中,这样我就可以关闭 ARM 而无需每次都重新编程。
microcontroller - 有问题的微控制器和 VCO
我希望你的一天一切顺利。我正在对 LPC1768 进行编程以向 AD5791 发送信号,以便根据 AD5791 的输出电压输出给定的频率。我附上了电路图。我已经能够从 LPC1768 读取和写入 AD5791。然而,当我将 VCO 连接到信号分析仪时,当我“改变”AD5791 的电压输出时,我发现峰值频率没有变化。我一直在使用 mbed 进行编程。下面是我目前正在使用的代码。输入将不胜感激。我相信问题可能在于 spi.write 是如何实现的。AD5791 需要 20 位字,LPC1768 最多只能发送 16 位字。此外,还有字节顺序的问题——但我相信我已经解决了这个问题,因为我正在按照预期的顺序读出我写给 AD5791 的内容。
}`
c - 如何使用 LPC1788 微控制器通过 USB 进行通信?
我目前正在使用 NXP LPC1788 微控制器,我正在尝试将其配置为使用 USB 与 Windows 7 PC 通信。我在 USB 方面的经验有限(我从本周初开始学习该协议),但我使用 LPC1788 已经有一段时间了,并且对其他通信协议(CAN、I2C、SSP)也有经验。
我想将我的微控制器配置为设备,让 PC 充当主机。我怀疑我需要将微控制器配置为使用全速中断传输进行通信。此外,稍后我可能需要为 PC 创建自己的供应商特定 USB 驱动程序 - 我还没有这样做,而且我的描述符没有正确配置。
我的具体问题是,当我运行我的程序并初始化/启用微控制器的 USB 设备时,我只收到两个 USB 中断。每种情况下的设备中断状态 (DEVINTST) 值为:
在接收到 DEVSTAT 中断的情况下,我使用 GET DEVICE STATUS 命令从串行接口引擎读取以下值:
使用 USBlyzer,我只获得以下四个数据包:http://i.imgur.com/WRk7RBv.png。
我期待即使在 PC 端没有正确配置的描述符或匹配的驱动程序,我仍然应该收到更多。我本来希望在 Endpoint 0 中收到 Get Descriptor 请求。
我的主要功能只初始化我的 USB 设备并无限循环。
USB初始化代码如下:
USB复位功能:
USB设置地址功能:
USB集连接功能:
USB中断服务程序:
终端输出:
编辑:使用 SIE 的 GET ERROR CODE 命令,我发现在 USB 初始化函数结束时出现“意外数据包”错误。但是,如果我读取测试寄存器,我会按预期返回 0xA50F,这意味着我与 SIE 的通信正常,并且我的 USB/AHB 时钟可能配置正确并正在运行。
c - 使用自定义 INF 的微控制器的 USB 驱动程序安装问题
我正在使用 NXP LPC1788 微控制器,我正在尝试在主机上创建一个驱动程序以通过 USB 与其通信。我相信我已经设法让设备正确处理标准 USB 请求(PC 能够正确读取字符串描述符)。
不过,我在编写示例 USB 驱动程序并为设备安装它时遇到了麻烦。我正在使用 Microsoft Visual Studio 2013。我的步骤是:
创建一个 WinUSB 应用程序,它会生成一个“驱动程序”和“驱动程序包”项目。
修改生成的 INF 文件以使用我设备的 VID 和 PID。
构建项目 - 都成功构建。输出文件夹包含一个 INF 文件、一个目录文件和 WdfCoinstaller01011.dll。
通过 USB 插入微控制器,转到设备管理器→更新驱动程序软件...,浏览到包含 INF 文件的文件夹并选择它。
这会导致出现以下屏幕:
- 我选择“仍然安装此驱动程序软件”。片刻之后,它显示了这个屏幕:
我的 INF 文件如下所示:
.
我的 setupapi.dev.log 文件的相关部分在此处给出。日志中多次出现以下类型的行:
还出现了以下情况:
.
我对我的 USB 设备使用以下描述符:
embedded - 找出lpc1788硬故障的原因
我一直在开发一个固件,该固件在lpc1788上移植了一个沉重的 GUI 库。我使用 32 MB SDRAM 处理字体和图像,使用 NAND 闪存存储字体和 bmp 的二进制文件以及设备配置数据。
我已禁用使用故障、MemManage 故障和总线故障。因此,有时当任何 GUI 功能出现问题时,执行会进入硬故障。现在,我用于 GUI 的库是emWin而且我无法知道是什么功能导致了硬故障。如果 NAND 闪存损坏并且库尝试获取要显示的任何内容,例如背景图像,那么它就会出现硬故障。我可以处理这种情况,因为我确定(通过一些带有标志的代码实现)我的 NAND 闪存已损坏,我需要将二进制文件重新编程到其中,因为如果我不这样做,每当设备启动时起来,它会进入硬故障。
但是,如果某些其他例程导致硬故障,那么我实际上不应该再次重新编程整个闪存。因此,如果我知道导致硬故障的原因,我将能够相应地修改处理程序,以决定是否需要重新编程或简单地修改一些参数并继续最后知道的配置。
有没有办法确定是什么函数导致了运行时硬故障?即使是地址也足够了。这可以做到吗?