硬件连接
本 demo 基于 BL706_IOT 开发板,连接方式如下:
软件实现
软件代码见 examples/uart/uart_echo`
配置 UART 设备时钟源,见 bsp/board/bl706_iot/clock_config.h
配置 UART 设备复用引脚,见 bsp/board/bl706_iot/pinmux_config.h
使能 BSP_USING_UART0 并配置 UART 设备配置,见 bsp/board/bl706_iot/peripheral_config.h
在 bflb_platform_init 函数中,我们已经注册并且打开了一个调试用的串口设备,给用户实现一个 MSG 的基本功能用作打印输出报文。具体实现如下
首先调用 uart_register 函数注册 UART 设备,当前注册 UART0
然后通过 find 函数找到设备对应的句柄,保存于 uart 句柄中
最后使用 device_open 以轮询发送和中断接收来打开 uart 设备,默认关闭中断并且不注册接收中断回调函数
通过 device_set_callback 函数,注册用户指定的UART0 接收中断服务函数。通过 device_control 函数打开 RX_FIFO 和 RTO 中断
此函数是示例的中断服务函数,作用是将接受到的数据原封不动的发送出去。
state 会返回 UART 设备的中断类型
args 包含了返回数据指针
size 包含返回数据的长度
dev 为中断的 uart 设备句柄
当中断产生,将会调用 device_write 函数将接受到的数据发送回去。
编译和烧录
CDK 编译
打开项目中提供的工程文件:uart_echo.cdkproj
参照 Windows 下使用 CDK (类 MDK Keil)开发指南 的步骤编译下载即可
命令行编译
原作者:BL_MCU_SDK 开发指南
|