常见问答
- M051 系列(95)
- M0518 系列(97)
- M0519 系列(43)
- M0564 系列(1)
- Mini51 系列(90)
- Nano100 / 102 系列(101)
- Nano103 Base 系列(10)
- Nano110 / 112 LCD 系列(100)
- Nano120 USB 系列(111)
- Nano130 USB+LCD 系列(110)
- NUC029 系列(94)
- NUC100 / 200 系列(102)
- NUC120 / 122 / 123 / 220 USB 系列(116)
- NUC121/125 系列(1)
- NUC126 USB 系列(2)
- NUC130 / 230 CAN 系列(103)
- NUC131/NUC1311 CAN 系列(98)
- NUC140 / 240 USB+CAN 系列(114)
- M451 Base 系列(118)
- M451M 系列(117)
- M452 USB 系列(130)
- M4521 USB 系列(1)
- M453 CAN 系列(128)
- M463 CAN FD/USB HS 系列(1)
- M467 Ethernet/Crypto 系列(1)
- M471 系列(1)
- M479 Motor Control Series(1)
- M481 Base 系列(4)
- M482 USB FS OTG 系列(4)
- M483 CAN 系列(4)
- M484 USB HS OTG 系列(4)
- M485 Crypto 系列(4)
- M487 Ethernet 系列(4)
- M4TK 触摸 IC 系列(25)
- NUC442 / 472 系列(130)
- NUC472 Series(1)
- NUC505 系列(138)
常见问答
使用NuMicro_ISP_Programming_Tool的UART功能做ISP更新时,该如何更换UART PORT? 日期:2018-11-27
使用NuMicro_ISP_Programming_Tool的UART功能做ISP更新时,若要更改UART的Port,需要做三个步骤。
1. 在targetdev.h中,找到define的地方,将UART的PORT以及中断服务程序的名称更改为目标PORT的名称。
(不同IC,中断服务程序的名称可能会稍微有点差异,请参考中断向量表)
2. 在main.c中,找到SYS_Init()函数,里面对于UART做了Clock设置,将原本的UART PORT设置改成对目标UART PORT设置即可
3. 在main.c中,找到SYS_Init()函数,最底下会有对于UART的MFP设定,将MFP更改成目标PORT的MFP即可
(1) /* Set PD multi-function pins for UART0 RXD(PD.0) and TXD(PD.1) */
举例说明 : 将NUC126 ISP更新的UART PORT由UART0更改为UART1
步骤1 更改PORT Define (targetdev.h)
修改前
#define UART_T UART0
#define UART_T_IRQHandler UART02_IRQHandler
#define UART_T_IRQn UART02_IRQn
修改后
#define UART_T UART1
#define UART_T_IRQHandler UART1_IRQHandler
#define UART_T_IRQn UART1_IRQn
步骤2 修改UART PORT的Clock设定 (main.c)
修改前
CLK->APBCLK0 |= CLK_APBCLK0_UART0CKEN_Msk;
CLK->CLKSEL1 = (CLK->CLKSEL1 & (~CLK_CLKSEL1_UARTSEL_Msk)) | CLK_CLKSEL1_UARTSEL_HIRC;
CLK->CLKDIV0 = (CLK->CLKDIV0 & (~CLK_CLKDIV0_UARTDIV_Msk)) | CLK_CLKDIV0_UART(1);
修改后
CLK->APBCLK0 |= CLK_APBCLK0_UART1CKEN_Msk;
CLK->CLKSEL1 = (CLK->CLKSEL1 & (~CLK_CLKSEL1_UARTSEL_Msk)) | CLK_CLKSEL1_UARTSEL_HIRC;
CLK->CLKDIV0 = (CLK->CLKDIV0 & (~CLK_CLKDIV0_UARTDIV_Msk)) | CLK_CLKDIV0_UART(1);
Ps. 不同IC的UART Clock设置可能略有差异,可以参考BSP中的Sample Code或是查看TRM中的Clock章节
步骤3 修改MFP至目标PORT (main.c)
修改前
/* Set PD multi-function pins for UART0 RXD(PD.0) and TXD(PD.1) */
SYS->GPD_MFPL = (SYS->GPD_MFPL & (~SYS_GPD_MFPL_PD0MFP_Msk)) | SYS_GPD_MFPL_PD0MFP_UART0_RXD;
SYS->GPD_MFPL = (SYS->GPD_MFPL & (~SYS_GPD_MFPL_PD1MFP_Msk)) | SYS_GPD_MFPL_PD1MFP_UART0_TXD;
修改后
/* Set PD multi-function pins for UART0 RXD(PE.9) and TXD(PE.8) */
SYS->GPE_MFPH = (SYS->GPE_MFPH & (~SYS_GPE_MFPH_PE9MFP_Msk)) | SYS_GPE_MFPH_PE9MFP_UART1_RXD;
SYS->GPE_MFPH = (SYS->GPE_MFPH & (~SYS_GPE_MFPH_PE8MFP_Msk)) | SYS_GPE_MFPH_PE8MFP_UART1_TXD;
产品: | 微控制器 ,8 位 8051 微控制器 ,Arm Cortex-M0 微控制器 ,Arm Cortex-M23 微控制器 ,Arm Cortex-M4 微控制器 |
---|---|
应用: | |
功能: | Software and Tools,Nu Tools,In System Programming (ISP) Tool |