电子网首页 > 开源与设计

【基于单片机的直流电机控制】环境搭建与点灯

2026-01-01 20:45 | 来源:电子世界报

● 引言

   上期咱分享了开箱贴,这期咱来聊聊关于NXP-MCXA153核心板的开发环境与其它配套件的资料介绍。

   开发者可通过MCUXpresso SDK 构建工具链接,登录个人注册账号后自行构建SDK。这里笔者习惯于Keil工具开发,因此构建的工程是基于MDK的。开发者亦可导出基于MCUXpresso IDE或者IAR、VS Code等,如果不嫌占用磁盘空间,可选支持“所有工具链”进行导出SDK。

● 环境搭建

    构建的“SDK_25_12_00_FRDM-MCXA153”工程下载后将其解压,安装基于Keil5的pack支持包。这里开发者可通过https://www.keil.arm.com/packs/mcxa153_dfp-nxp/devices/获取到该pack包。

NXP.MCXA153_DFP.25.09.00.zip

安装pack包.png

pack安装完成.png

     安装完pack包后,直接打开SDK中的“demo_apps”文件夹下的“led_blinky”工程,对工程稍作修改,代码展示如下:

led_blinky.c

#include "board.h"
#include "app.h"

/*******************************************************************************
 * Prototypes
 ******************************************************************************/
void delay(void)
{
    volatile uint32_t i = 0;
    for (i = 0; i < 1000000; ++i)
    {
        __asm("NOP"); /* delay */
    }
}
/*******************************************************************************
 * Variables
 ******************************************************************************/
volatile bool led_on_flag = false;
/*******************************************************************************
 * Code
 ******************************************************************************/
void SysTick_Handler(void)
{
    led_on_flag = (!led_on_flag);
}

/*!
 * @brief Main function
 */
int main(void)
{
    /* Board pin init */
    BOARD_InitHardware();

    while (1)
    {
	if(led_on_flag)
	{
	        GPIO_PortToggle(BOARD_LED_GPIO, 1u << BOARD_LED_GPIO_PIN);
		delay();
		GPIO_PortClear(BOARD_LED_GREEN_GPIO, 1u << BOARD_LED_GREEN_GPIO_PIN);
		GPIO_PortSet(BOARD_LED_GREEN_GPIO, 1u << BOARD_LED_BLUE_GPIO_PIN);
		delay();
		GPIO_PortClear(BOARD_LED_BLUE_GPIO, 1u << BOARD_LED_BLUE_GPIO_PIN);
		GPIO_PortSet(BOARD_LED_GREEN_GPIO, 1u << BOARD_LED_GREEN_GPIO_PIN);
		delay();
	}
    }
}

peripherals.c

static void SysTick_init() {
  /* Initialize the systick module. */
  SysTick->LOAD = ((uint32_t)(SYSTICK_TICKS - 1UL) / 1000) * 200;
  SysTick->VAL = 0UL;
  SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk;
}

/***********************************************************************************************************************
 * Initialization functions
 **********************************************************************************************************************/
void BOARD_InitPeripherals(void)
{
  /* Initialize components */
  SysTick_init();
}

/***********************************************************************************************************************
 * BOARD_InitBootPeripherals function
 **********************************************************************************************************************/
void BOARD_InitBootPeripherals(void)
{
  BOARD_InitPeripherals();
}

代码编写完,将type-C接口的数据线连接FRDM-MCXA153板上的J15,此时电脑会自动安装CMSIS-DAP驱动。

自动安装驱动.png

将程序更新到开发板后,板上的RGB指示灯显示见如下附件。

点灯.zip

点灯.gif

● 资料分享

FRDM-MCXA153电路原理图:SPF-90829_A1.pdf

FRDM-MCXA153数据手册:MCXAP64M96FS3.pdf

3-Phase PMSM and BLDC Motors指导文档:UG10245.pdf

开关电源TXN50的数据手册:txn50_datasheet.pdf

电机驱动板Adafruit TB6612介绍文档:adafruit-tb6612-h-bridge-dc-stepper-motor-driver-breakout.pdf

Adafruit-TB6612电路原理图如下:

adafruit_products_schem.png

推荐技术

返回顶部