NXP-1020-EVK学习(一)-下载例程

1 篇文章 0 订阅
0 篇文章 1 订阅

NXP-1020-EVK学习(一)-下载例程

一、开发板:

MIMXRT1020-EVK 官方评估板
正面:
居中的图片:
在这里插入图片描述
背面:
在这里插入图片描述
芯片说明:

二、下载踩的坑:

  1. 使用1052固件进行下载

1.拿到板后直接下载程序(导致识别不到芯片)

(1.)识别不到芯片
在这里插入图片描述
(2.)与芯片通信出错,未截图 2.下载报错 1.点击下载时ARM7报错 2.下载后读取出错 3.下载后不运行 解决方法: 1.查找电路图,找到BOOT0与BOOT1的配置方法,在背面off-off-ON-off BOOT3.3V供电,才可以成功识别板子。
NXP1020 下载方式
NXP 与常用的STM32不同,需要匹配开发板与之对应的下载算法。ST对应的是芯片的下载算法。
这和芯片的架构有区别, i.MX RT 系列芯片集成了应用处理器与为控制器的优点,它基于应用处理器的芯片架构,采用了微控制器的内核 Cortex-M7,从而具有应用处理器的高性能及丰富的功能,又具备传统微控制器的易用、实时及低功耗的特性。
在这里插入图片描述
在这里插入图片描述
上图是NXP I.MXRT与STM3210x系列对比

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NXP K66FX单片机开发板软件例程IAR8.2版本工程源码30个合集: 1.龙邱K66 LED例程.rar 10.龙邱K66 OLED例程.rar 11.龙邱K66 TFT1.8例程.rar 12.龙邱K66 ADC归一化参数.zip 12.龙邱K66 ADC测试例程.rar 13.龙邱K66 看门狗测试例程.rar 14.龙邱K66 CMT控制SD5舵机测试例程.rar 14.龙邱K66 FTM3控制SD5舵机测试例程.rar 15.龙邱K66 电机测试例程.rar 16.1龙邱K66 编码器线数测试例程.zip 16.龙邱K66 编码器测试例程.rar 17.龙邱K66 MPU6050读取原始数据例程.rar 18.龙邱K66 九轴读取原始数据例程.rar 19.龙邱K66 7725 OLED显示例程.rar 2.龙邱K66 KEY例程.rar 20.龙邱K66 7725 TFT1.8灰度显示例程.rar 21.龙邱K66 7725 TFT1.8二值化显示例程.rar 22.龙邱K66 7725 TFT1.8RGB显示例程.rar 23.龙邱K66 7725 上位机灰度显示例程.rar 24.龙邱K66 神眼 上位机灰度显示例程 - 与非门.zip 24.龙邱K66 神眼 上位机灰度显示例程.zip 25.龙邱K66 神眼 OLED显示例程 - 与非门.rar 25.龙邱K66 神眼 OLED显示例程.rar 26.龙邱K66 神眼 TFT1.8灰度显示例程 - 与非门.rar 26.龙邱K66 神眼 TFT1.8灰度显示例程.rar 27.龙邱K66 神眼 TFT1.8二值化显示例程 - 与非门.rar 27.龙邱K66 神眼 TFT1.8二值化显示例程.rar 28.龙邱K66 Flash读写例程.zip 29.龙邱K66 CCD上位机显示例程.rar 3.龙邱K66 KEY外部中断例程.rar 30.龙邱K66 超声波测距例程.rar 31.龙邱K66 匿名上位机通信例程.rar 32.龙邱K66 VL53测距例程.rar 33.龙邱K66 串口+DMA例程.zip 34.龙邱K66 ICM20602 SPI例程.zip 34.龙邱K66 ICM20602 模拟IIC例程.zip 34.龙邱K66 ICM20602 模拟SPI例程.zip 4.龙邱K66 PIT定时器中断例程.rar 5.龙邱K66 PIT程序计时器例程.rar 6.龙邱K66 串口打印和接收例程.rar 7.龙邱K66 LPTMR程序计时器例程.rar 8.龙邱K66 LPTMR脉冲计数例程.rar 9.龙邱K66 SYSTICK程序计时器例程.rar
RT1021-EVKNXP公司推出的一款基于i.MX RT1021处理器的评估开发板,它支持多种通信接口,包括CAN和UART。CAN是一种面向实时应用的通信协议,而UART是一种异步串行通信协议。下面我们来分析一下如何将CAN通信转换为UART通信,并给出相应的代码示例。 在RT1021-EVK上,CAN通信和UART通信的实现都需要使用相应的外设模块。CAN通信需要使用FlexCAN模块,而UART通信需要使用UART模块。要将CAN通信转换为UART通信,需要通过中断的方式获取CAN数据帧,然后将数据帧转换为UART数据,发送到UART总线上。 下面是CAN转UART的代码示例,仅供参考: ```c #include "fsl_flexcan.h" #include "fsl_uart.h" #define CAN_MSG_BUF_NUM 9U #define CAN_MSG_BUF_SIZE sizeof(flexcan_frame_t) flexcan_handle_t flexcanHandle; flexcan_mb_transfer_t rxXfer; flexcan_frame_t rxFrame; uart_handle_t uartHandle; uint8_t uartTxBuffer[CAN_MSG_BUF_SIZE]; void FLEXCAN_UserRxCallback(CAN_Type *base, flexcan_handle_t *handle, uint32_t mbIdx, void *userData) { UART_SendDataBlocking(UART5, uartTxBuffer, CAN_MSG_BUF_SIZE); } int main(void) { flexcan_config_t flexcanConfig; flexcan_rx_mb_config_t mbConfig; uart_config_t uartConfig; uint32_t i; BOARD_InitPins(); BOARD_BootClockRUN(); BOARD_InitDebugConsole(); /* Configure the FlexCAN module */ FLEXCAN_GetDefaultConfig(&flexcanConfig); flexcanConfig.baudRate = 500000U; FLEXCAN_Init(CAN1, &flexcanConfig, CLOCK_GetFreq(kCLOCK_IpgClk)); /* Configure the FlexCAN RX message buffer */ mbConfig.format = kFLEXCAN_FrameFormatStandard; mbConfig.type = kFLEXCAN_FrameTypeData; mbConfig.id = 0x123U; FLEXCAN_SetRxMbConfig(CAN1, RX_MESSAGE_BUFFER_NUM, &mbConfig, true); /* Create the FlexCAN handle */ FLEXCAN_TransferCreateHandle(CAN1, &flexcanHandle, FLEXCAN_UserRxCallback, NULL); /* Configure the UART module */ UART_GetDefaultConfig(&uartConfig); uartConfig.baudRate_Bps = 115200U; uartConfig.enableTx = true; uartConfig.enableRx = false; UART_Init(UART5, &uartConfig, CLOCK_GetFreq(kCLOCK_IpgClk)); /* Create the UART handle */ UART_TransferCreateHandle(UART5, &uartHandle, NULL, NULL); /* Start the FlexCAN module */ FLEXCAN_Start(CAN1); while (1) { /* Wait for the FlexCAN message */ rxXfer.mbIdx = RX_MESSAGE_BUFFER_NUM; rxXfer.frame = &rxFrame; FLEXCAN_TransferReceiveNonBlocking(CAN1, &flexcanHandle, &rxXfer); /* Convert FlexCAN message to UART message */ for (i = 0; i < CAN_MSG_BUF_SIZE; i++) { uartTxBuffer[i] = ((uint8_t *)&rxFrame)[i]; } /* Send UART message */ UART_TransferSendBlocking(UART5, &uartHandle, uartTxBuffer, CAN_MSG_BUF_SIZE); } } ``` 在这个示例中,我们使用了FlexCAN模块和UART模块,其中FlexCAN用于接收CAN数据帧,UART用于发送UART数据。在主循环中,我们使用FLEXCAN_TransferReceiveNonBlocking函数从FlexCAN模块中接收CAN数据帧,并将其转换为UART数据,然后使用UART_TransferSendBlocking函数将UART数据发送到UART总线上。同时,在CAN数据帧接收完成后,我们通过中断的方式调用了FLEXCAN_UserRxCallback函数,在该函数中可以进行一些额外的处理,例如打印日志或修改数据。 需要注意的是,由于CAN和UART是两种不同的通信协议,因此在转换数据时需要进行一些协议转换,例如将CAN数据帧的格式转换为UART数据的格式。此外,由于CAN和UART的数据传输速率有所不同,因此在转换数据时需要考虑数据传输的速率和延迟,以确保数据的正确性和实时性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值