【ACM32G103RCT6] + UART功能评测
[复制链接]
ACM32G103RCT6开发板板载了3个UART,分别是UART1, UART2 ,UART3 和 UART4 其中UART2作为debug模式,可以使用print进行日志打印。
其中acm32g103_coreboard.h库文件提供了对UART2的初始化,如下图所示(这个注释的brief撰写错误,应该是UART2)
具体的正确UART如下图所示(可以看到为UART2):
仅仅使用下述代码即可对串口2进行初始化并且打印helloworld
- int main(void)
- {
- uint32_t count=0;
-
- HAL_Init();
-
- SystemClock_Config();
-
- BSP_UART_Init();
-
-
-
- while(1)
- {
- printf("Hello world");
- };
- }
-
-
我这里单独把BSP里串口初始化的代码拿了出来(如下图所示来进行初始化串口2)
- int main(void)
- {
- UART_HandleTypeDef BSP_UART_Handle;
-
- HAL_Init();
-
- SystemClock_Config();
-
- BSP_UART_Handle.Instance = UART2;
- BSP_UART_Handle.Init.BaudRate = 115200;
- BSP_UART_Handle.Init.WordLength = UART_WORDLENGTH_8B;
- BSP_UART_Handle.Init.StopBits = UART_STOPBITS_1;
- BSP_UART_Handle.Init.Parity = UART_PARITY_NONE;
- BSP_UART_Handle.Init.Mode = UART_MODE_TX_RX;
- BSP_UART_Handle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
-
- HAL_UART_Init(&BSP_UART_Handle);
- HAL_UART_SetDebugUart(BSP_UART_Handle.Instance);
-
- while(1)
- {
- printf("Hello world");
- };
- }
-
打印信息如下(正常无误):
上述是串口2的输出,一起都是正常的,但是我将串口2切换到串口三或者串口1并且连接上ch340连接上位机。无法接受到数据,暂时不知道什么原因(UART3 TXD:PB10,RXD:PB11)。代码如下图所示
- int main(void)
- {
- UART_HandleTypeDef BSP_UART_Handle;
-
- HAL_Init();
-
- SystemClock_Config();
-
- BSP_UART_Handle.Instance = UART3;
- BSP_UART_Handle.Init.BaudRate = 115200;
- BSP_UART_Handle.Init.WordLength = UART_WORDLENGTH_8B;
- BSP_UART_Handle.Init.StopBits = UART_STOPBITS_1;
- BSP_UART_Handle.Init.Parity = UART_PARITY_NONE;
- BSP_UART_Handle.Init.Mode = UART_MODE_TX_RX;
- BSP_UART_Handle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
-
- HAL_UART_Init(&BSP_UART_Handle);
- HAL_UART_SetDebugUart(BSP_UART_Handle.Instance);
-
- while(1)
- {
- printf("Hello world");
- };
- }
|