static void uart1_io_init (void)
{
uint32_t temp;
/* PB6. 7 AF Close */
temp = tls_reg_read32 (HR_GPIOB_AFSEL) ;
temp &= ~0xC0;
tls_reg_write32 (HR_GPIOB_AFSEL, temp) ;
/* PB6. 7 AF Open opt1 */
temp = tls_reg_read32 (HR_GPIOB_AFSEL) ;
temp |= 0xC0;
tls_reg_write32 (HR_GPIOB_AFSEL, temp) ;
temp = tls_reg_read32 (HR_GPIOB_AFS0) ;
temp &= ~0xC0;
tls_reg_write32 (HR_GPIOB_AFS0, temp) ;
temp = tls_reg_read32 (HR_GPIOB_AFS1) ;
temp &= ~0xC0;
tls_reg_write32 (HR_GPIOB_AFS1, temp) ;
}
参考这个串口 1 的复用设置代码, 按手册修改相应的寄存器参数, 可以复用其它的串口.
如果用的是这个 WM_SDK_W806_v0. 6. 0 SDK
`__HAL_AFIO_REMAP_UART1_TX (GPIOB, GPIO_PIN_6) ;
__HAL_AFIO_REMAP_UART1_RX (GPIOB, GPIO_PIN_7) ; `
hal 库的函数, IDE 可以直接跳转过去看能改成什么
其他 uart 的配置就直接改 UART1 的数字
@yangxijing 尴尬, 回复错了
这是一个宏, 定义如下:
define __HAL_AFIO_REMAP_UART1_TX (__HANDLE__, __IOPOSITION__) do{ \