首页 理论教育 通信实例:K60单片机UART模块初始化及数据发送

通信实例:K60单片机UART模块初始化及数据发送

时间:2023-09-21 理论教育 版权反馈
【摘要】:以LPLD_OSKinetis_V3库为例,K60单片机使用UART模块前首先需要进行初始化工作,初始化代码如下:模块初始化完成后,就可以通过库函数LPLD_UART_PutChar进行数据发送,其函数原型为void LPLD_UART_PutChar;为了方便调用函数,可以将其再次封装为void Lora_PutChar;从而省去每次调用函数都需要写出实参UART0。K60单片机的硬件UART模块提供中断功能,当UART模块接收到有效数据信号时,会产生一个UART接收中断。

通信实例:K60单片机UART模块初始化及数据发送

以LPLD_OSKinetis_V3库为例,K60单片机使用UART模块前首先需要进行初始化工作,初始化代码如下:

模块初始化完成后,就可以通过库函数LPLD_UART_PutChar进行数据发送,其函数原型为void LPLD_UART_PutChar(UART_Type*,int8);为了方便调用函数,可以将其再次封装为void Lora_PutChar(int8);从而省去每次调用函数都需要写出实参UART0。函数代码如下:

接下来进行SendMessage函数编写,此函数所实现的功能为连续发送字符,实现发送字符串的功能,函数代码如下:

这里同时可以使用库函数LPLD_UART_PutCharArr来进行字符串的发送,道理大同小异,在此不再赘述。

至此K60单片机的数据发送功能已经完成,只需在合适的时机、合适的地方,调用Lora_SendMessage函数,即可完成数据的发送工作。(www.xing528.com)

对于单片机接收端,基于前文所述,需要设置接收数据变量缓存区、已储存数据量大小等。由于变量内容过多,选择以结构体的形式储存相关内容。具体串口数据类型结构体定义如下:

与串口数据相关的变量都在其中,使用时通过SerialPortType进行声明,以SerialPortType SerialPortRx;为例,其成员变量通过.运算符进行引用。

K60单片机的硬件UART模块提供中断功能,当UART模块接收到有效数据信号时,会产生一个UART接收中断。当中断请求发生后,可以通过库函数LPLD_UART_GetChar来获取UART模块接收到的有效数据,其函数原型为int8 LPLD_UART_GetChar(UART_Type*)。同样地,为了方便我们调用函数,可以将其再次封装为int8 Lora_GetChar(void),从而省去每次调用函数都需要写出实参UART0的步骤。函数代码如下:

对于接收函数,往往与接收中断函数搭配使用,在UART0初始化时,已经将中断函数定义为了Lora_isr,中断函数中需要进行获取接收字符以及解码的工作。函数代码如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈