在线时间257 小时
UID3722835
注册时间2023-8-2
NXP金币1780
TA的每日心情 | 开心 2025-3-30 11:03 |
---|
签到天数: 457 天 连续签到: 5 天 [LV.9]以坛为家II
金牌会员
 
- 积分
- 2104
- 最后登录
- 2025-3-30
|
首先感谢NXP论坛以及管管寄送的LPC4330板子,板子是OM13096,官网搜了下已经过时了,没提供资料。
找到了板型一样的OM13084,只有主控芯片不一样,是可以看到开发板原理图:OM13084
开发流程参考这位大佬的:LPC4330 - 1- 想说点个RGB灯也不是那么容易
下面讲下我的点灯过程:
安装MCUXpresso SDK,这个不必多说。因为芯片比较老,IDE库里没有带LPC4330,所以需要另外下载LPCopen库,这里面有芯片库和例程:[url=https://www.nxp.com/design/design-center/software/software-library/lpcopen-software-development-platform-lpc43xx PCOPEN-SOFTWARE-FOR-LPC43XX]LPCOpen Software Development Platform LPC43XX[/url]
我下载的是NGX Xplorer LPC4330 board v3.0.2 LPCXpresso版本,然后IDE里import project(s) from file system 从本地文件导入工程我导入的是三个:lpc_board_ngx_xplorer_4330, lpc_chip_43xx, periph_blinky
前两个工程是编译lib库用的,里面是板子基础外设初始化之类的,应该是必须编译的,第三个是随便找的一个简单的example
在项目目录里对应工程右击选择编译工程就能编译。
点灯代码参考上面给的链接,其实也很简单,自己实现一下GPIO点灯和delay就行,比如我选的这个periph_blinky工程,在systick.c文件里改写下main函数,另外改写SysTick_Handler和实现Delay_ms。
- static volatile uint32_t tick_ct = 0;
- void SysTick_Handler(void)
- {
- tick_ct += 1;
- }
- void Delay_ms(uint32_t N_ms) {
- uint32_t start_cnt = tick_ct;
- while ((tick_ct - start_cnt) <= N_ms) {
- ;
- }
- }
- int main(void) {
- SystemCoreClockUpdate();
- Board_Init();
- /* Enable and setup SysTick Timer at a periodic rate */
- SysTick_Config(SystemCoreClock / TICKRATE_HZ);
- /* LED red as output */
- Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinState(LPC_GPIO_PORT, 3, 7, (bool) TRUE);
- /* LED green as output */
- Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0, 7, (bool) TRUE);
- /* LED blue as output */
- Chip_GPIO_SetPinDIROutput(LPC_GPIO_PORT, 3, 5);
- Chip_GPIO_SetPinState(LPC_GPIO_PORT, 3, 5, (bool) TRUE);
- while (1) {
- Chip_GPIO_SetPinOutLow(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 5);
- Delay_ms(5000);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinOutLow(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 5);
- Delay_ms(5000);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 3, 7);
- Chip_GPIO_SetPinOutHigh(LPC_GPIO_PORT, 0, 7);
- Chip_GPIO_SetPinOutLow(LPC_GPIO_PORT, 3, 5);
- Delay_ms(5000);
- }
- }
复制代码
下载的话需要先给开发板的J5短接,表示使用外部flash运行程序,包装盒里一般有贴跳线帽,如果没有的话就用杜邦线短接J5也行。
microusb数据线接到开发板的ulink的usb接口那里,然后点debug下载,如果插了多个调试器需要自己选一下,之后就能进仿真界面了,点运行就能看到RGB灯5s变换一次。
本来尝试用keil开发的,发现需要提供外部flash的下载算法,找了半天没找到,就没继续搞,现在用的是MCUXpresso SDK,后面有时间尝试一下双核
|
|