本帖最后由 ldptest 于 2024-3-28 08:46 编辑
一、环境搭建
NXP官方提供免费的IDE,直接去下载MCUXpresso IDE,选择windows版并安装,一路确认直至安装完成
到这个帖子【资料】MCX-N9xx-BRK资料抢先看下载板子的SDK
MCX-N947的SDK来了:
网盘链接:https://pan.baidu.com/s/1YkS9d0CDOTSPbaeeu2NUQA? 提取码:3vft
安装完成后,窗口会出现安装了的SDK包
点击SDK包,右侧会出现包内详细内容
二、新建项目 在菜单中选择新建项目
选择ncxn9xxbrk板,并根据需要选择相应功能(我是新人,具体一些功能仍在摸索中)
一路默认配置,建立了一个名字为MCXN947_Project项目 选择led_blinky,并打开,照葫芦画瓢
我目的生成三色流水灯效果,以下是我的代码 MCXN947_Project.c文件,#include后添加延时函数
- /*******************************************************************************
- * Variables
- ******************************************************************************/
- volatile uint32_t g_systickCounter;
- /*******************************************************************************
- * Code
- ******************************************************************************/
- void SysTick_Handler(void)
- {
- if (g_systickCounter != 0U)
- {
- g_systickCounter--;
- }
- }
- void SysTick_DelayTicks(uint32_t n)
- {
- g_systickCounter = n;
- while (g_systickCounter != 0U)
- {
- }
- }
复制代码 main函数修改为:
- int main(void) {
- /* Init board hardware. */
- CLOCK_EnableClock(kCLOCK_Gpio3);
- BOARD_InitBootPins();
- BOARD_InitBootClocks();
- BOARD_InitBootPeripherals();
- LED_RED_INIT(LOGIC_LED_OFF);
- LED_BLUE_INIT(LOGIC_LED_OFF);
- LED_GREEN_INIT(LOGIC_LED_OFF);
- if (SysTick_Config(SystemCoreClock / 1000U))
- {
- while (1)
复制代码 pin_mux.c中BOARD_InitBootPins函数中增加,LED灯GPIO的初始化
- /* Enables the clock for PORT3: Enables clock */
- CLOCK_EnableClock(kCLOCK_Port3);
- const port_pin_config_t led_pins_config = {/* Internal pull-up/down resistor is disabled */
- kPORT_PullDisable,
- /* Low internal pull resistor value is selected. */
- kPORT_LowPullResistor,
- /* Fast slew rate is configured */
- kPORT_FastSlewRate,
- /* Passive input filter is disabled */
- kPORT_PassiveFilterDisable,
- /* Open drain output is disabled */
- kPORT_OpenDrainDisable,
- /* Low drive strength is configured */
- kPORT_LowDriveStrength,
- /* Pin is configured as PIO3_4 */
- kPORT_MuxAlt0,
- /* Digital input enabled */
- kPORT_InputBufferEnable,
- /* Digital input is not inverted */
- kPORT_InputNormal,
- /* Pin Control Register fields [15:0] are not locked */
- kPORT_UnlockRegister};
- /* PORT3_4 (pin F14) is configured as PIO3_4 */
- PORT_SetPinConfig(PORT3, 2U, &led_pins_config);
- /* PORT3_4 (pin F14) is configured as PIO3_4 */
- PORT_SetPinConfig(PORT3, 3U, &led_pins_config);
- /* PORT3_4 (pin F14) is configured as PIO3_4 */
- PORT_SetPinConfig(PORT3, 4U, &led_pins_config);
复制代码 三、生成Hex文件和下载
1、进入下载模式
我没有仿真器和接线,只能用USB接口,研究板件说明书MCX N参考手册,N947的下载方式很多,USB下载当然没问题。
参考前面大神们的帖子,按着sw3(ISP)按键使用usb micro数据线(不要用了充电线,而且线不能太长)接入电脑,然后松开sw3键可以进入下载模式
或者接上数据线后,按着sw3(ISP)按键,按一下sw1(reset)复位板子,再松sw3键也可以进入下载模式。
进入在win10系统下,查看设备管理器可以看到新增一个usb输入设备,事件中可以看到VID和PID与参考手册(上图)描述一致
参考:【MCX-N947分享】#2 ISP浅析
2、生成HEX文件
在MCUXpresso IDE菜单中选择全面构建
如果编译没有出错,你会在左侧项目中的debug或release目录中找到MCXN947_Project.axf文件,点击后使用右键菜单生成hex文件,如下图
生成后,你会在相同目录下找到同名的hex文件
3、下载
下载方法我是使用【MCX-N947分享】--3. ISP烧录与流水彩灯中的软件和方式实现。
另外,我还没研究出如何通过USB接口进行调试,只实现了下载功能,有兄弟知道请告知。
四、效果
颜色不对,原因是SDK中的一个小BUG
SDK中board.h文件宏定义,gpio高电平是亮灯,低电平是灭灯
电路图中,低电平是亮灯,而高电平灭灯

|