【平头哥RVB2601创意应用开发】配置串口1 UART1输出
<p>项目中要用到串口输入输出,翻了下论坛竟然没有一篇写配置串口1的,只能自己写了。</p><p>仅仅写个测试程序,能让串口1输出数据就行。</p>
<p>根据原理图</p>
<p>PA28是串口一的TX</p>
<p>现在写个程序,让串口一输出数据,CDK的串口接收并显示在串口助手中。</p>
<p></p>
<p> </p>
<p>实物这样接线,拔掉跳线帽之后,串口就不能接收到日志信息了。</p>
<p> </p>
<p></p>
<p>在board_yoc_init初始化函数中增加串口1的初始化函数。</p>
<pre>
<code class="language-cpp">void board_yoc_init(void)
{
board_init();
event_service_init(NULL);
console_init(CONSOLE_UART_IDX, 115200, 512);
uart1_init();
ulog_init();
aos_set_log_level(AOS_LL_DEBUG);
int ret = partition_init();
if (ret <= 0) {
LOGE(TAG, "partition init failed");
} else {
LOGI(TAG, "find %d partitions", ret);
}
aos_kv_init("kv");
snd_card_alkaid_register(NULL);
network_init();
board_cli_init();
}</code></pre>
<p>仿照串口0的函数,增加的串口1的初始化函数</p>
<pre>
<code class="language-cpp">void uart1_init(void)
{
int rc;
csi_pin_set_mux(PA28, PA28_UART1_TX);
csi_pin_set_mux(PA27, PA27_UART1_RX);
aos_mutex_new(&g_console_mutex_handle1);
_uart1.port = TEST_USART_IDX;
_uart1.config.baud_rate = 115200;
_uart1.config.mode = MODE_TX_RX;
_uart1.config.flow_control = FLOW_CONTROL_DISABLED;
_uart1.config.stop_bits = STOP_BITS_1;
_uart1.config.parity = NO_PARITY;
_uart1.config.data_width = DATA_WIDTH_8BIT;
rc = hal_uart_init(&_uart1);
if (rc == 0) {
g_console_handle1 = &_uart1;
g_console_buf_size1 = 512;
}
}</code></pre>
<p>在main函数中增加一个任务,定时调用串口1发送函数</p>
<pre>
<code class="language-cpp">void uart1_send_data(void)
{
hal_uart_send(&_uart1, "ssk\r\n", 5, AOS_WAIT_FOREVER);
LOGD(TAG, "Send at cmd1 ok\r\n");
}</code></pre>
<p>实现了定时从串口1打印数据,串口1的TX直接接到了CP2012的RX脚,因此会在串口窗口中显示。</p>
<p></p>
<p>仅仅一个小测试,代码写的不是很严谨,仅供有需要使用串口1的同学参考。</p>
日志输出不就是串口1吗? lugl4313820 发表于 2022-6-7 08:35
日志输出不就是串口1吗?
<p>那是串口0</p>
<p>我原来配置串口1以后,就烧不进程序了,不知道你的还好?</p>
lugl4313820 发表于 2022-6-8 07:48
我原来配置串口1以后,就烧不进程序了,不知道你的还好?
<p>没问题</p>
页:
[1]