1

我有一个来自 Embeded 艺术家的 LPC3141 开发人员工具包,并且我已经成功地创建了基于 Eclipse 的免费 IDE,它可以成功地为 ARM 编译。我使用包含的闪烁器示例测试了我的 IDE。我有一个启动代码和一个可以工作的链接器脚本,我将从现在开始使用它们。

现在我想学习如何从零开始我自己的闪光灯程序。我必须先编程什么?是GPIO寄存器,定时器寄存器,uart寄存器,……???第一件事是什么?我需要写的东西实际上是 HAL 吗?我已经订购了这本书,你觉得呢?

谢谢你。

问候齐加

4

2 回答 2

2

这些页面可能有用,相同的系列,不同的芯片。

http://lpcstuff.blogspot.com/2008/09/lpc-2148-blinker-1.html

http://lpcstuff.blogspot.com/2010/08/nxp-mbed-aint-so-bad-after-all.html

您不需要计时器或中断或类似的东西来开始。有一个(长)的C循环计数,然后改变gpio的状态。您需要将 gpio 配置为输出。小心不要让 C 编译器优化你的延迟循环。稍后您可以开始轮询计时器,然后在您觉得确实需要时中断。

于 2011-07-01T01:32:18.023 回答
0

使用arm微控制器真的很容易上手。您需要做的就是阅读微控制器的数据表和用户手册。您可以在用户手册中找到有关外围设备和寄存器的所有文档

https://www.nxp.com/docs/en/user-guide/UM10362.pdf

例如,此代码用于 lpc2148():

#include <lpc214x.h> // this header file is provided by nxp and contains all register addresses

/* delay function is using only for loop to generate delay. 
For accurate timing, use a hardware timer/counter (systick timer is recommended (because it is so easy and configurable via cmsis functions that are provided by ARM)) */
void delay_ms(unsigned int count)
{
  unsigned int j=0,i=0;
  for(j=0;j<count;j++)
  {
    for(i=0;i<3000;i++)
        asm("nop");
  }
}

/* main function */
int main() 
{
    PINSEL2 = 0x000000;  //Configure the P1 Pins for GPIO;
    IODIR1 = 0xffffffff; //Configure the P1 pins as OUTPUT;

    while(1)
    {
       IOSET1 = 0xffffffff;     // Make all the Port pins as high  
       delay_ms(1000);

       IOCLR1 = 0xffffffff;     // Make all the Port pins as low  
       delay_ms(1000);
    }
    return 0;
}
于 2020-07-25T19:24:49.133 回答