cc2530 Z-stack USART1 DMA引脚更改 P0.2 P0.3 ->P0.5 P0.4

依次执行如下操作,代码将不做介绍,相信读者自行容易理解

下面介绍几个uart相关寄存器
寄存器PERCFG (0xF1) --外设控制
cc2530 Z-stack USART1 DMA引脚更改 P0.2 P0.3 ->P0.5 P0.4_第1张图片
cc2530共有两个串口,UART0和UART1,两个串口通过寄存器PERCFG的值映射到不同的引脚
cc2530 Z-stack USART1 DMA引脚更改 P0.2 P0.3 ->P0.5 P0.4_第2张图片
如我们需要使用串口1的 P0.4 P0.5,按照如上寄存的的功能,我们需要将PERCFG 第二位拉低
PERCFG &= ~HAL_UART_PERCFG_BIT;
其定义在HAL_UART_PERCFG_BIT 在_hal_uart_dma.c中

具体代码操作如下:
1、在Option for node "GenericApp"中将宏定义ZTOOL_P1->ZTOOL_P2
2、修改_hal_uart_dma.c的内容

#if (HAL_UART_DMA == 1)
	PERCFG &= ~HAL_UART_PERCFG_BIT;    // Set UART0 I/O to Alt. 1 location on P0.
#else
	PERCFG &= ~HAL_UART_PERCFG_BIT;     // Set UART1 I/O to Alt. 2 location on P1.
#endif
 PxSEL  |= HAL_UART_Px_RX_TX;       // Enable Tx and Rx on P1.
  ADCCFG &= ~HAL_UART_Px_RX_TX;      // Make sure ADC doesnt use this.
 UxCSR = CSR_MODE;                  // Mode is UART Mode.
 UxUCR = UCR_FLUSH;                 // Flush it.

3、修改_hal_uart_dma.的宏定义(应为我们定义了ZTOOL_P2将定义else的宏)

#if (HAL_UART_DMA == 1)
#define HAL_UART_PERCFG_BIT        0x01         // USART0 on P0, Alt-1; so clear this bit.
#define HAL_UART_Px_RX_TX          0x0C         // Peripheral I/O Select for Rx/Tx.
#define HAL_UART_Px_RTS            0x20         // Peripheral I/O Select for RTS.
#define HAL_UART_Px_CTS            0x10         // Peripheral I/O Select for CTS.
#else
#define HAL_UART_PERCFG_BIT        0x02     //jerry mei    // USART1 on P1, Alt-2; so set this bit.
#define HAL_UART_Px_RTS            0x20         // Peripheral I/O Select for RTS.
#define HAL_UART_Px_CTS            0x10         // Peripheral I/O Select for CTS.
#define HAL_UART_Px_RX_TX          0x30     //jerry mei    //P0.4 P0.5//0xC0         // Peripheral I/O Select for Rx/Tx.**
#endif

4、HalUARTWrite修改端口为PORT1 应为我们使用的是端口2

void putchar(char c){
  HalUARTWrite(HAL_UART_PORT_1,(uint8*)&c,1);  //jerry mei
}

自此,我们已经将 TX:P0_3 RX:P0_2 修改为 TX:P0_4 RXP0_5,赶紧去实验一下吧。。。。

你可能感兴趣的:(TI)