问题标签 [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.
c - 在 LPC1788 微控制器上通过 CAN 接收消息时遇到问题
我正在使用 NXP LPC1788 微控制器进行编程,它具有几个 CAN 控制器。我一直在尝试让微控制器传输一条消息,然后从自身接收回消息(本地自检)。
我认为传输工作正常(一位同事使用探针确认了这一点),当我发送消息时,会生成一个中断并调用它的句柄。但是,CAN 状态寄存器(CAN1GSR [全局状态寄存器,暂时在代码中注释掉] + CAN1SR [本地状态寄存器])不报告已收到任何消息(消息接收缓冲区为空)。
代码(对不起,这是一团糟):
终端 I/O 的输出:
该代码也列在http://pastebin.com/8kEmbvta
编辑:线程已死,不太可能再次查看,但我替换了该行
和
感谢 HonkyTonk。它似乎对我的代码没有任何影响,但我再次认为这些引脚被指定给 CAN 控制器 2(我使用的是 CAN 控制器 1)。
c - 与 LPC1788 微控制器一起使用的好的 RTOS 是什么?
我试图找到一个免费/便宜的 RTOS,其他人发现它与 NXP LPC1788 微控制器配合得很好。我原本打算使用 FreeRTOS,但它似乎不支持那个特定的处理器;最接近的支持内核是 LPC1768。ThreadX 可与 LPC1788 配合使用,但它的许可证将花费数千英镑。建议?
编辑 1:我忘了提,我正在使用 IAR Embedded Workbench。
编辑2:我想我还应该指出我对嵌入式编程相当陌生,更不用说使用RTOS了。FreeRTOS 和 ThreadX 看起来都非常相似,并且都有相当直观的 API。另一个 RTOS 的 API 与这些类型的 API 匹配得越多,我想就越好。
编辑 3:我一直在研究一种称为 embOS 的 RTOS。它看起来很专业,API 看起来不错,它们支持相当数量的处理器/IDE 组合(包括我的),而且我已经有了一个运行良好的示例项目。它不是免费的,它的许可证大约需要 2500 欧元,但这仍然比 threadX 许可证便宜 3 倍左右。感谢您的建议,我无法选择可接受的答案,我感到很遗憾。
device - 两个通过 RS-485 通信的 LPC1765 设备
我正在尝试使用 RS-485 在两个 LPC1765 设备之间实现简单的通信。我正在使用这个添加到我的菜单系统的示例(这是 LPC17xx 的基本示例):
因此,两个设备都使用 RS485Init() 正确初始化。当我使用从地址作为第一个字节的 RS485Send 发送数据时,结果是:
(1) 如果设备断开,发送器接收到自己的通信(UARTBuffer 的内容被更新
(2) 如果设备已连接,则没有任何反应——传输的缓冲区在某处丢失(UARTBuffer 不变)
现在硬件应该已正确连接,所以我将列出一些内容以供参考。RS485_TXD/RXD上有一个U59 SN65HVD1781D驱动,有RS485_OF、RS485_MASTER_PWR和RS485_MASTER_MFAS和一个稳压器。有一个 RS485 从检测电路和 UP/DOWN 连接。每个设备都连接了四个触点,它们是(我认为)RS485_UP、RS485_A+、RS485_B- 和 RS485_DOWN。顶部和底部都有一个 4 针连接器,用于按顺序连接设备,如果一切正常,最顶部的设备将承担所有底部设备的主机状态。
c - RTOS 数据记录器示例
我正在尝试在 Cortex M0 (LPC11U14) 上开发数据记录器,我正在考虑使用像 FreeRTOS 这样的实时操作系统,这样我就可以有一个将数据写入 SD 的低优先级任务,以及多个更高优先级的任务- 获取传感器数据的优先级计时器。
有谁知道任何可以作为参考设计的代码示例?我知道如何创建任务/计时器,但我对将数据从计时器传递到写入任务的有效方法感兴趣。如果已经存在一个可以用作代码库的好的数据记录器项目,我对重新发明轮子犹豫不决?
assembly - 将一个寄存器的内容移动到另一个寄存器
这是我的定义:
代码:
我正在为 LPC2148 编程,我正在尝试编写 ARM 汇编代码以将 P0.7 的内容移动到 P0.20。我对汇编语法一点也不熟悉,所以当我尝试修复这段代码时会遇到各种编译错误。如何轻松地将 P0.7 的位移动到 P0.20(在汇编代码中)?
在 C 代码中试过这个:
但也没有用..在 P0.20 上没有得到任何输出。
尝试在 C 代码中模拟 PWM:
尝试无条件设置P0.20的值:
c - 在C中的UART中接收未定义大小的消息
我正在为 LPC2148 编写自己的驱动程序,我想到了一个问题。如何在 UART 中接收未指定大小的消息?
唯一想到的两件事是: 1 - 配置看门狗并在时间用完时结束接收。2- 使得无论何时向其发送消息,都必须有消息结束字符。
在我看来,第一个选择似乎更好,但我想知道是否有人有更好的答案,我知道肯定有。
非常感谢你
gcc - LPC1850:为什么在 systick 中断后程序执行跳转到 0xFFFFFFFE?
我为 LPC1857 制作了一个工作程序,它启用了中断,每个 systick 中断然后调用一些函数。它与 LPC1857 完美配合。当我尝试在 LPC1850 上运行相同的程序时,程序执行跳转到 0xFFFFFFFE 并在中断发生时停止。在 SystickHandler 中调用的函数永远不会被调用。看起来程序为处理程序获取了错误的地址,但我不明白这是怎么回事。发生这种情况时,LR 指向 0xFFFFFFF9。这两个地址都是保留的。
我更改了 LPC1850 的链接器文件(与 LPC1857 项目的唯一区别,除了一些不相关端口的初始化),它看起来像这样:
你知道我错过了什么吗?如果您需要任何其他信息,请告诉我。提前致谢!!
cortex-m3 - lpc 1769 上下文切换
我正在尝试在 lpc 1769 (cortex m3) 上进行上下文切换。我正在尝试编写一个计算数字指数的例程,在用户模式下将其作为子例程运行,但使用 SVC 调用和中断处理程序来要求 SVC 进程代表它与终端交互。要打印的值应作为寄存器参数传递给 SVC。
如果我从用户模式切换到主模式,如何将存储在用户模式堆栈中的值切换到主模式?
任何人都可以为上述查询编写一个小程序吗?
先感谢您。
serial-communication - CAN总线协议实现
我想学习和实现CAN BUS协议。我已经在软件中使用 MSP430 Launchpad 实现了 UART、SPI、I2C 和单线总线协议。现在我想了解CAN Bus协议。我有 mBed LPC 1768 Cortex M3 开发板。mBed 有 Can Bus 库,但我想编写自己的库,以便详细了解它,即我为其他通信协议所做的方式。
我无法找到合适的资源开始,材料似乎散落在网上。任何人都可以指导我如何使用我提供的开发板编写和实现 CAN 总线协议。
谢谢
arm - LPC 1769(cortex m3) Code Red IDE---没有可用于 g_pfnVectors() at0x0 的源
我正在尝试使用堆栈 PSP 从用户模式调用 SVC。我在调试 LPC 1769(cortex m3) 上的代码时观察到以下错误------- No source available for "g_pfnVectors() at 0x0" 我使用的 IDE 是来自 Embedded 的带有 LPC 1769 的 CODE RED LPC Xpresso艺术家。
这是汇编代码
在 SVC 中,我进行堆栈检查并调用相应的函数以在控制台上打印。这是 SVC 代码:
printhex/printcaharacter/printdecimal 是用于在控制台上打印相应值的函数。
在调试、单步模式期间,在 SVC 指令之后,出现错误 No source available for "g_pfnVectors() at 0x0" 。
错误的原因和到来是非常出乎意料的。gdb 调试器有什么问题,还是我解释代码的方式有误?