加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

如何在KEIL上基于LPC55S69上部署arm2D!

05/15 07:05
2749
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

首先安装下面2个KEIL PACK包。一个ARM2D,一个perf_counter。

其次以一个带LCD的可以正常绘图的例程为基础,开始添加ARM2D。

如下图添加ARM2D。

如下图添加perf_counter。

再就是CMSIS包,需要添加DSP库。

添加pack完成后的样子。

下一步配置ARM2D的arm2d_cfg.h和disp lcd

下面lcd驱动函数实现下图的绘图函数。

用户应用文件添加相关头文件。

然后主函数添加初始化。

用户文件添加时间测量函数

/*============================ IMPLEMENTATION ================================*/
static int64_t s_lTimestap;

__OVERRIDE_WEAK
void arm_2d_helper_perf_counter_start(void)
{
s_lTimestap = get_system_ticks();
}

__OVERRIDE_WEAK
int32_t arm_2d_helper_perf_counter_stop(void)
{
return (int32_t)(get_system_ticks() - s_lTimestap);
}

#include "stdio.h"
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "board.h"
#include "peripherals.h"
#include "fsl_power.h"

#include "lcd_driver.h"
#include "arm_2d.h"
#include "arm_2d_helper.h"
#include "perf_counter.h"
#include "arm_2d_disp_adapter_0.h"
/*******************************************************************************
* Definitions
******************************************************************************/

//static const uint8_t c_bmpClockFace[];

/*******************************************************************************
* Prototypes
******************************************************************************/
void SysTick_Handler(void)
{

}

int fputc(int ch,FILE *f)
{
return ch;
}
/*============================ IMPLEMENTATION ================================*/
static int64_t s_lTimestap;

__OVERRIDE_WEAK
void arm_2d_helper_perf_counter_start(void)
{
s_lTimestap = get_system_ticks();
}

__OVERRIDE_WEAK
int32_t arm_2d_helper_perf_counter_stop(void)
{
return (int32_t)(get_system_ticks() - s_lTimestap);
}

/*!
* @brief Main function
*/
int main(void)
{
char ch;
/* Init board hardware. */
/* set BOD VBAT level to 1.65V */
POWER_SetBodVbatLevel(kPOWER_BodVbatLevel1650mv, kPOWER_BodHystLevel50mv, false);
/* attach main clock divide to FLEXCOMM0 (debug console) */
CLOCK_AttachClk(BOARD_DEBUG_UART_CLK_ATTACH);

BOARD_InitBootPins();
BOARD_InitBootClocks();
BOARD_InitBootPeripherals();
BOARD_InitDebugConsole();

SysTick_Config(SystemCoreClock/1000);
init_cycle_counter(true); //初始化 perf_counter

lcd_init(); //LCD初始化
PRINTF("hello world.rn");
// Disp0_DrawBitmap(0,0,200,190,c_bmpClockFace); //测试LCD绘图函数。

arm_irq_safe {
arm_2d_init(); // 初始化 arm-2d
}
// 初始化 Display Adapter 0
disp_adapter0_init();

while (1)
{
disp_adapter0_task();
// ch = GETCHAR();
// PUTCHAR(ch);
}
}

编译,下载

下载 后的效果

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
NX3225SA-25.000M-STD-CRS-2 1 Nihon Dempa Kogyo Co Ltd Quartz Crystal,
$9.24 查看
NC7SZ04P5X 1 Fairchild Semiconductor Corporation Inverter, LVC/LCX/Z Series, 1-Func, 1-Input, CMOS, PDSO5, 1.25 MM, EIAJ, SC-88A, SC-70, 5 PIN
$0.32 查看
MX25U12835FM2I-10G 1 Macronix International Co Ltd Flash, 32MX4, PDSO8, SOP-8
$2.6 查看

相关推荐

电子产业图谱