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

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

下面介绍几个uart相关寄存器
寄存器PERCFG (0xF1) --外设控制
在这里插入图片描述
cc2530共有两个串口,UART0和UART1,两个串口通过寄存器PERCFG的值映射到不同的引脚
在这里插入图片描述
如我们需要使用串口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,赶紧去实验一下吧。。。。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值