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

0 投票
1 回答
716 浏览

c - LPC1788:使用 SPI 与 UFDC-1 通信

我正在使用 LPC1788 微控制器,我正在尝试使用 SPI 从 UFDC-1(通用频率数字转换器)发送和接收数据。我能够通过 MOSI 很好地向它传输数据(我已经用示波器确认了这一点),但是每当我发送诸如“获取精度”之类的指令时,我的数据缓冲区中唯一的数据就是数据或指令我刚发。“环回”未启用。

这是我的代码:

编辑:是发送“设置精度”指令(0x020A)后我所有 SPI 线的捕获。预计 MISO 中的数据在这里毫无意义。如果需要,我可以为其他指令生成捕获。

从上到下:

  • 味噌
  • 莫西
  • 党卫军
  • 时钟

编辑 2: 具体来说,我要做的是使用指令 0x020A 设置 UFDC-1 的精度。最后一部分(“0A”)是准确度数。在那之后,我有一个while循环,我试图读回那个准确性。“获取准确度”指令是 0x01FF,其中“FF”是为了读回准确度号而发送的一个虚拟字节。因此,当我发送“0x01FF”时,我希望在从 UFDC-1 发回的数据中某处读回“0A”。

编辑 3:是我第一次向 UFDC-1 发送“获取精度”指令时捕获的 SPI 线。蓝线(从上数第二个)是 MOSI,它肯定给出了正确的命令 (0x01FF)。如果这工作正常,UFDC-1 应该通过 MISO 回复“0A”(0b00001010),这是准确度数,在 MOSI 传输“FF”的同时。相反,当时我收到了“1A”,我不相信“A”实际上来自 UFDC-1,而只是来自我之前发送的“设置精度”指令 (0x020A)。这是因为我在 while 循环中有“获取准确性”指令,而我正在读回的稳态值是“0x7F00”

这是我的输出的样子:

编辑:原来问题出在 CPOL 和 CPHA 位上。它们都从 0 更改为 1。这似乎让 SPI 控制器与 UFDC 正确交互。

剩下的一个问题是 MISO 上的随机数据的 SPI 时钟。例如,我有一个 while 循环,我希望只返回“0xedff”。我得到的是:

0 投票
3 回答
506 浏览

arm - 在lpc1768上下载数据

有一个来自 C 项目的 hex 文件。我想在 LPC1768 的闪存上下载这个十六进制文件,其中包含一些我在运行时代码中使用的原始数据(用于在代码中初始化数据)。我知道当我在板上写它时,在运行时,LPC1768 从内存中的闪存复制数据。

问题1:如何用jflash下载带有hex文件的原始数据?

问题2:如何找到原始数据在内存中复制的位置,以便在运行时使用它?

0 投票
1 回答
1932 浏览

c - LPC2148 USB 发送/接收数据

使用 Keil USB HID 示例,我终于能够获得使用 LPC2148 在 Windows 中成功枚举的设备;USB HID 示例需要一些调整。我正在使用中断传输方法。我正在使用 USBlyzer 来嗅探我的 USB 数据传输。

在 Windows 端,我目前正在使用 C# USB 库(http://www.codeproject.com/Articles/18099/A-USB-HID-Component-for-C)连接到我的设备。

我测试数据传输的目标是向设备发送一个字节,让它执行一些简单的数学运算(例如加 2)并发回新值,以便我可以验证数学是否正确完成并且数据已发送和接收适当地。

现在它已被枚举,但我无法让 LPC2148 发送/接收数据。我发现这篇文章(http://www.keil.com/forum/19713/)解释了如何向主机发送数据。

它有以下代码:

ususer.c

我使用了这种技术,但发现了几个问题: 1.它连续发送并且非常快,而我只希望它在接收到一个字节的数据后发送数据,我只希望它发送一次。2. 看起来 GetInReport 似乎什么也没做,因为在我使用这个名称的方法中,我让它使用一个不断递增 1 的变量更新 InReport。但在我收到的数据中,它始终保持默认值并且从未改变。3.这段代码没有地方让我从电脑接收数据。

0 投票
1 回答
357 浏览

embedded - 计算lpc1788 mips

你计算过lpc1788板的mips吗?最近我通过在 rom 中运行的以下代码计算了一个结果:

延迟.s:

使用 IAR ide,我得到 loops_per_ms 是 39936,mips 是 79M,而使用 Keil,我得到 loops_per_ms 是 29952,这意味着 mips 是 59M。

MCU 速度设置为 120MHz,根据数据表,MIPS 应为 1.25x120=150M,我认为在 ROM 中运行的代码会减慢 mips。

任何机构有一些意见或其他结果?

0 投票
2 回答
2714 浏览

c - 有人为 NXP LPC17xx ADC 编写过工作代码吗?

我正在使用 NXP LPC1788 微控制器,我正在尝试编写代码,让我在模拟通道 0-7 上执行 ADC 测量。我现在的代码是:

随着延迟,代码似乎可以工作,但我不希望在那里出现任意延迟。我已经玩了几个小时的代码,无论出于何种原因,当存在延迟时设置了溢出标志(也就是说,当函数输出正确的值时它会抱怨溢出)。

我只对模拟通道 0 施加电压。这是包含延迟时得到的输出:

当它不包括在内时:

有没有人写过任何代码,可以让我运行所有 ADC 通道并尽可能快地记录它们的值,而不会出现任意延迟?

0 投票
1 回答
1175 浏览

spi - lpc1788 ssp (SPI) - proc 到 proc 通信

我想将一串字符从一个 proc(主)发送到另一个(从),然后从从属读取字符串。

目前我正在混合使用 arduino 和 LPC1788,使用 lpc 作为主机,使用 arduino 作为从机。LPC 正确发送了 arduino 在 ISR 中接收到的字符串。在循环函数中,我检查是否收到所有字符,然后尝试发回字符串。在 LPC 方面,ISR 由于某种原因无法正常工作。我已将 SR 设置为

所以我在从 LPC 发送字符串之后延迟了,然后从 arduino 开始读取。

我在洛杉矶看到的发送字符串是:

在此处输入图像描述

但是从 Arduino 读取字符串看起来很奇怪(字符串应该是“Pong\n”,我收到的并不总是 P……它会有所不同) 在此处输入图像描述

我想大多数问题都在发送和读取 SPI 缓冲区的同步中。在 LPC 上没有功能性 ISR 的情况下,我如何实现这一目标?

0 投票
0 回答
1009 浏览

lpc - lpcxpresso UART 和 DMA

有没有人在没有基板的 1769 lpcxpresso 板上使用 UART 和 DMA 的经验?我可以让它传输 FIFO 缓冲区,但我无法让它确认任何接收到的字符。如果重要的话,我正在使用 MCB1700,DMA-UART 示例代码。有什么地方可以获取代码示例以使其正常工作吗?

我正在使用 lpcxpresso code_red 附带的 MCB1700 示例代码。这通过 RS-232 电缆和 2 个 DMA 通道使用 UART0 和 UART1。但是连接 2 个端口的 RS232 连接在底板上,但我没有。我只是使用面包板上的电线将 UART0 TX 连接到 UART1 RX 并将 UART1 TX 连接到 UART0 RX。我收到通知,我收到了来自 UART1 的 16 字节 FIFO 缓冲区,但是当 UART0 传输到 UART1 时,我没有设置标志,说我在另一个 DMA 通道上收到了字符。我想知道是否没有正确初始化某些东西

0 投票
1 回答
150 浏览

c - 十六进制文件从 pcb 传回

我正在使用 NXP lpc1769 演示板进行一个小项目。我正在使用 CodeRed 的 LPCExpresso 5 对其进行编程,我想知道是否可以将应用程序 hex/bin 文件从电路板传输回 PC。使用 IDE 或任何其他解决方案。

提前致谢!

0 投票
0 回答
1195 浏览

c - lpc1768 的 tftp 服务器客户端示例

我正在尝试使用 TFTP 客户端通过 LPC1768 控制器上的以太网将 MMC/SD 卡中的文件传输到 PC。对于 TFTP,它需要两个端口连接到 TFTP 服务器。我正在使用 LPC1768 网络服务器示例附带的 TCP/IP 堆栈。是否可以一次打开两个端口.. 我试过但它不起作用。

是否有适用于无需操作系统的微控制器的 TFTP 客户端的示例程序或教程?或任何替代协议?

0 投票
1 回答
1949 浏览

arm - LPC1769 UART 中断导致硬故障

我刚刚为 UART3 启用了接收中断,但我一发送数据就遇到了一个硬故障。这是我初始化它的方式:

根据 GDB,我的 ISR 甚至没有受到打击。我已经确认它在我的向量表中的正确位置,并且设置了正确的地址和位 0(对于 Thumb-2 模式,就像我的所有其他处理程序一样)。事实上,当我用一个空函数替换 ISR 时,我仍然会出错。这是我的故障处理程序的输出:

LR 和 PC 似乎都不是很有帮助。这是我添加的第一个 IRQ。所有其他向量表条目都是 SysTick 及以下。

如何找出导致故障的原因?

这是我的向量表: