本文内容
AzureSphere支持用于串行通讯的通用异步接收器(UART)。UART是一种用于通过计算机或外围设备上的串行端口发送和接收数据的集成电路。UART被广泛使用,以其简单性而享誉。并且,与SPI和I2C不同,UART不支持多个从属设备。
注意
本主题介绍怎样在中级应用程序中使用UART。有关在RTApps中使用UART的信息,请参阅在支持实时的应用程序中使用外围设备。
AzureSphere中级应用程序可以通过调用ApplibsUARTAPI与UART通讯。UART_HighLevelApp示例演示怎么在MT3620设备上与UART通讯。
UART要求
与UART通讯的应用程序必须包含相应的头文件,并将UART设置添加到应用程序清单。
所有应用程序都必须设置其目标硬件,并包含相应的硬件定义头文件。
头文件
#define UART_STRUCTS_VERSION 1
#include
#include "path-to-your-target-hardware.h"
在UART_STRUCTS_VERSION包含头文件之前申明预处理器定义。这将指定应用程序使用的结构版本。
将“path-to-your-target-hardware.h”替换为硬件头文件的路径。
应用程序清单设置
应用程序清单中的UART设置列举了应用程序访问的UART。一次只能有一个应用程序使用UART。若要配置这种设置linux spi应用程序linux spi应用程序,请将Uart功能添加到应用程序清单,之后将每位UART添加到功能。AzureSphere应用程序清单提供了有关应用程序清单的更多详尽信息。
在代码中,使用为硬件定义的常量来标示UART。生成应用时,编译器会将这种值转换为原始值。
比如,下边是一个应用程序清单的节选,该清单面向MT3620参考开发板(RDB)linux社区,并在MT3620上配置两个UART。
"Uart": [ "$MT3620_RDB_HEADER2_ISU0_UART", "$MT3620_RDB_HEADER4_ISU1_UART" ],
以下节选演示怎么在面向AvnetMT3620初学者工具包的应用程序食指定相同的UART:
"Uart": [ "$AVNET_MT3620_SK_ISU0_UART", "$AVNET_MT3620_SK_ISU1_UART" ],
配置并打开UART
在对UART执行操作之前,必须配置设置并打开UART。打开UART时,会返回一个文件描述符,你可以传递给对UART执行操作的函数。
若要配置设置,请调用UART_InitConfig函数以初始化UART_Config结构。初始化UART_Config结构后,可以修改结构中的UART设置。
若要打开UART并应用设置linux 输入法,请调用UART_Open函数并传递UART_Config结构。
对UART执行读取和写入操作
可以使用POSIX函数对UART执行读取和写入操作。若要对UART执行读取操作,请调用read()函数。若要对UART执行写入操作,请调用write()函数。
关掉UART
若要关掉UART,请调用POSIX函数close()。
MT3620支持
本部份介绍仅在MT3620上运行AzureSphere时应用的UART选项。
MT3620的UART规范在MT3620支持状态中列举。MT3620开发板用户手册介绍了引脚布局和接线功能。
MicrosoftAzureSphereSDK安装目录中的HardwareDefinitions文件夹包含常见AzureSphere开发板、模块和芯片的定义。它包含用于定义MT3620、MT3620RDB以及其他MT3620硬件的主插口的康泰时和JSON文件。HardwareDefinitions文件夹的默认位置在C:ProgramFiles(x86)MicrosoftAzureSphereSDKHardwareDefinitionsWindows和/opt/azurespheresdk/HardwareDefinitionsLinux上。
支持以下UART设置。默认设置为8N1(8个数据位、1个停止位,但是没有奇偶校准):
在中级应用程序中使用UART时,仅使用5个可用的ISU外围块引脚中的4个。未使用的引脚可由同一中级应用程序用作GPIO引脚。有关可重复使用用于GPIO的未使用ISU引脚的列表,请参阅。