【平头哥RVB2601-demo解析】CH2601_UART
[复制链接]
一、功能
实现CH2601的UART0不停的发送数据。
在主程序内,初始化UART0,OLED。在while(1)循环中,每隔1s发送“Hello world! RVB2601”。
二、代码解析
int main(void)
{
board_yoc_init();
LOGD(TAG, "%s\n", aos_get_app_version());
oled_init();
while (1) {
LOGD(TAG, "Hello world! RVB2601");
aos_msleep(1000);
}
return 0;
}
最重要的是board_yoc_init();
void board_yoc_init()
{
board_init();
// uart_csky_register(CONSOLE_UART_IDX);
console_init(CONSOLE_UART_IDX, 115200, 128);
ulog_init();
aos_set_log_level(AOS_LL_DEBUG);
LOGI(TAG, "Build:%s,%s",__DATE__, __TIME__);
/* load partition */
// int ret = partition_init();
// if (ret <= 0) {
// LOGE(TAG, "partition init failed");
// } else {
// LOGI(TAG, "find %d partitions", ret);
// }
board_cli_init();
}
在board_init()中,因这个程序使用的IO口就2个,只对这两个IO口进行了定义。
void board_init(void)
{
board_pinmux_config();
}
static void board_pinmux_config(void)
{
csi_pin_set_mux(CONSOLE_TXD, CONSOLE_TXD_FUNC);
csi_pin_set_mux(CONSOLE_RXD, CONSOLE_RXD_FUNC);
}
#define CONSOLE_UART_IDX 0
#define CONSOLE_TXD PA23
#define CONSOLE_RXD PA24
#define CONSOLE_TXD_FUNC PA23_UART0_TX
#define CONSOLE_RXD_FUNC PA24_UART0_RX
PA23为UART0的TX,PA24为UART0的RX。上述代码对UART0完成初始化。
console_init(CONSOLE_UART_IDX, 115200, 128);
该函数设置UART0的配置:115200bps,8/N/1。对应电脑上的串口助手也该如此配置。
三、串口打印数据
编译,下载,重启。打印数据如下:
Welcome boot2.0!
build: Mar 5 2021 15:34:41
load img & jump to [prim]
load&jump 0x18017000,0x18017000,72004
xip...
j 0x18017044
[ 0.020]<I>INIT Build:Jul 3 2022,22:02:25
[ 0.020]<D>app e5
[ 0.030]<D>app Hello world! RVB2601
[ 1.040]<D>app Hello world! RVB2601
[ 2.040]<D>app Hello world! RVB2601
[ 3.040]<D>app Hello world! RVB2601
[ 4.040]<D>app Hello world! RVB2601
[ 5.040]<D>app Hello world! RVB2601
[ 6.040]<D>app Hello world! RVB2601。
发现CDK的一个小bug,工程存放路径中的文件夹名称有“_"符号,会导致无法“Go to Declaration"。
|