【OpenCPU】MN316-DLVD丨UART使用介绍

菩禔看科技 2024-04-21 19:40:40

MN316标准版SDK中包含3路UART接口,当模组需要和外部串口(如传感器等)进行数据交互、数据打印、log运行等操作时,可使用其中任一串口。本文流程图和接口、demo代码解析、注意事项三个方面介绍了MN316模组OpenCPU下UART的使用方法。

一、流程图及接口介绍

图1为MN316 OpenCPU 串口功能使用的常见流程及相关函数接口介绍。

图1 UART功能使用流程图

关于UART功能的各种接口,可在SDK中include-->cm_uart.h中查看。

1.1 打开串口接口

图2 串口打开函数

此函数用于设置好串口配置后,开启串口。其中,dev表示串口设备号,MN316标准版SDK中最多3路串口,详细描述如图3。

图3 串口打开函数参数定义1

cfg表示串口配置,主要包括数据位、奇偶校验、停止位、流控制、波特率。

数据位枚举一般是8位数据位,如图4。

图4 串口打开函数参数定义2

奇偶校验枚举具体描述如图5。

图5 串口打开函数参数定义3

停止位枚举如图6。

图6 串口打开函数参数定义4

流控制枚举如图7。

图7 串口打开函数参数定义5

波特率具体描述如图8,需注意,在SDK中仅支持下述波特率:

图8 串口打开函数参数定义6

1.2 关闭串口接口

图9 串口关闭函数

此接口用于关闭串口,其中dev表示需要关闭的串口设备号。

1.3 串口写数据接口

图10 串口写数据函数

其中dev表示串口设备号,data表示待发送数据首地址,len表示带发送数据长度,timeout表示最大等待时间,超出等待时间还未发送成功则返回失败。

1.4 串口读数据接口

图11 串口读数据函数

此接口用于读取串口数据,其中dev表示串口设备号,data表示读取数据缓存首地址,len表示读取数据长度,timeout表示最大超时等待时间,超过此等待时间未读取成功则返回失败。

1.5 注册UART接收回调函数接口

图12 注册回调函数

其中dev表示串口设备号,event为回调函数。

二、demo介绍

使用UART demo时,在串口工具对模组下发 CM:UART:DEV即可,其中DEV表示串口设备号,最多支持3路串口号。

2.1 串口初始化

串口初始化在接口 open_uart中。

图13 串口初始化demo函数

串口事件具体描述如图14。

图14 串口事件定义

图15 创建信号量

以串口1为例,其初始化流程如下:

图16 串口1初始化流程1

然后创建串口接收线程。

图17 串口1初始化流程2

2.2 串口接收函数

static void uart_recv_task_loop(void * arg)为串口接收函数。

图18 串口接收数据流程

2.3 串口回调函数

(1)回调函数声明;

图19 回调函数声明

(2)回调函数代码解析。

图20 回调函数

2.4 串口消息处理接口

图21 串口消息处理(打印)函数1

需注意,在sdk中使用UART0处理串口接收数据,因此本文除上文所述UART1的例子外,仅UART0对串口数据处理做解析。

图22 串口消息处理(打印)函数2

图23 串口消息处理(打印)函数2

UART0处理函数如下:

图24 demo中UART0接收数据处理函数1

图25 demo中UART0接收数据处理函数2

其中__cm_cmd_engine函数为数据内容解析函数,主要针对demo中命令(如CM:GPIO)进行解析。

以上就是MN316 OpenCPU使用UART的全部介绍。

三、注意事项

串口的回调函数中不要加延时,该SDK中断回调中都不能加延时,不然会出现死机。





转载自中移物联网,仅供模组品牌对应于中移物联网模组体系参考。

声明:《菩禔物联》所发表内容均为原创,所有原创内容仅用于交流,不代表任何立场和观点。极少数优才文章注明来源的,版权归原出处所有(无法查证版权的或未注明出处的均来源于网络搜集)。如有侵权,请联系我们删除或更改。内容的真实性、准确性和合法性由原作者负责。转载内容(视频、文章、广告等)只以信息传播为目的,仅供参考,不代表本平台认同其观点和立场。

The content published in the Bodhi Union of Things is original, and all original content is for communication purposes only and does not represent any position or viewpoint. A very small number of excellent talent articles indicate their source, and the copyright belongs to the original source (those that cannot be verified or whose source is not indicated are all collected online). If there is any infringement, please contact us to delete or make changes. The authenticity, accuracy, and legality of the content are the responsibility of the original author. The reprinted content (videos, articles, advertisements, etc.) is only for the purpose of information dissemination and is for reference only. It does not mean that this platform agrees with its views and positions.

0 阅读:0

菩禔看科技

简介:感谢大家的关注