一、描述你遇到的问题
在初始化UART时,使用官方例程尝试初始化15,16号口作为TX与RX,但是初始化失败
请详细描述问题
二、你具体做的所有步骤结果截图
以下为代码部分
#include "pinctrl_porting.h"
#include "pinctrl.h"
#include "uart.h"
#include "uart_porting.h"
#include "osal_debug.h"
#define TEST_UART_RX_BUFF_SIZE 64 /* 定义 UART 接收缓存区大小 */
void usr_uart_io_config(void)
{
/* 如下IO复用配置,也可集中在SDK中的usr_io_init函数中进行配置 /
uapi_pin_set_mode(S_MGPIO15, PIN_MODE_1); / uart1 tx /
errcode_t tt = uapi_pin_set_mode(S_MGPIO16, PIN_MODE_1); / uart1 rx */
if (tt != ERRCODE_SUCC) {
osal_printk("pin set mode fail\r\n");
}
else {
osal_printk("pin set mode success\r\n");
}
}
unsigned char g_uart_rx_buff[TEST_UART_RX_BUFF_SIZE] = { 0 };
uart_buffer_config_t g_uart_buffer_config = {
.rx_buffer = g_uart_rx_buff,
.rx_buffer_size = TEST_UART_RX_BUFF_SIZE
};
errcode_t usr_uart_init_config(void)
{
errcode_t errcode;
osal_printk("[UART] setting attr...\r\n");
uart_attr_t attr = {
.baud_rate = 9600, /* 波特率 */
.data_bits = 8, /* 数据位 */
.stop_bits = 1, /* 停止位 */
.parity = 0 /* 校验位 */
};
osal_printk("[UART] attr: baud=%d databits=%d stopbits=%d parity=%d\r\n",
attr.baud_rate, attr.data_bits, attr.stop_bits, attr.parity);
osal_printk("[UART] setting pin config...\r\n");
uart_pin_config_t pin_config = {
.tx_pin = S_MGPIO15, /* uart1 tx */
.rx_pin = S_MGPIO16, /* uart1 rx */
.cts_pin = PIN_NONE,
.rts_pin = PIN_NONE
};
osal_printk("[UART] pins: TX=%d RX=%d CTS=%d RTS=%d\r\n",
pin_config.tx_pin, pin_config.rx_pin,
pin_config.cts_pin, pin_config.rts_pin);
errcode = uapi_uart_deinit(UART_BUS_1);
osal_printk("[UART] deinit returned: 0x%x\r\n", errcode);
errcode = uapi_uart_init(UART_BUS_1, &pin_config, &attr, NULL, &g_uart_buffer_config);
if (errcode != ERRCODE_SUCC) {
osal_printk("uart init fail\r\n");
}
else {
osal_printk("uart init success\r\n");
}
osal_printk("=== usr_uart_init_config end ===\r\n");
return errcode;
}
void usr_uart_read_data(void)
{
int len;
unsigned char g_test_uart_rx_buffer[64];
len = uapi_uart_read(UART_BUS_1, g_test_uart_rx_buffer, 64, 0);
if(len > 0) {
/* process /
printf("read data len=%d\r\n", len);
printf("data: ");
for(int i=0; i<len; i++) {
printf("0x%02X ", g_test_uart_rx_buffer[i]);
}
}
}
int usr_uart_write_data(unsigned int size, char buff)
{
unsigned char tx_buff[10] = { 0 };
if (memcpy_s(tx_buff, 10, buff, size) != EOK) {
return ERRCODE_FAIL;
}
int ret = uapi_uart_write(UART_BUS_1, tx_buff, size, 0);
if(ret == -1) {
return ERRCODE_FAIL;
}
return ERRCODE_SUCC;
}
请插入图片
三、当前开发板状态全景照片
请插入图片
四、开发板串口所有日志
以下为代码部分的串口输出
[UART] setting attr...
[UART] attr: baud=9600 databits=8 stopbits=1 parity=0
[UART] setting pin config...
[UART] pins: TX=15 RX=16 CTS=115 RTS=115
[UART] deinit returned: 0x0
uart init fail
=== usr_uart_init_config end ===
[RADAR_LOG] alg ctrl read from nv [1][2][0][0][1][1][20]
device_main_init: 0!
===hal_initialize_phy===226===
device_module_init:: succ!
请在此处粘贴串口日志