智嵌串口IO模块提供了用户编程接口,增强了应用Read的灵活性

概览

智能物联网串口IO模块提供用户编程接口可编程控制器的定义,增强应用的灵活性,简化用户编程难度,缩短产品开发周期;用户无需了解IO板底层驱动,只需在其中嵌入控制逻辑和通信协议即可。

串口IO模块提供keil开发环境下的函数库,功能强大,使用方便。对C语言稍有了解的开发者可以在我司的串口IO平台上开发需要的功能(提供详细的技术指导和咨询)。

开关相关函数Write_Relay函数

函数原型如下:

这个函数需要被其他函数调用才能使用。

例子:

Write_Relay(0,1);//关闭第一个继电器的常开触点,断开常闭触点。

Write_Relay(1,0);//断开第二个继电器的常闭触点,打开常开触点。

在使用过程中注意传入的参数(通道、状态)不能错,通道的范围是0到N,N是控制板的IO输出点数; status的值只能是0或1。当参数超出定义的范围时,函数返回错误信息。

Read_Relay 函数

函数原型如下:

这个函数需要被其他函数调用才能使用。

例子:

无符号字符温度 = 0;

temp = Read_Relay(0);//读取第一个通道的输出状态,并将结果赋值给temp。

temp = Read_Relay(3);//读取第四通道的输出状态,并将结果赋值给temp。

那么可以根据temp的值来判断当前IO输出状态:

温度为0:常开触点断开,常闭触点闭合。

temp为1:常闭触点断开,常开触点闭合。

Temp为2:传入参数通道错误。

temp 为 3:其他未知错误。

数字输入相关函数Read_IN函数

函数原型如下:

这个函数需要被其他函数调用才能使用。

例子:

无符号字符温度 = 0;

temp = Read_IN(0);//读取第一个通道的输入状态,并将结果赋值给temp。

temp = Read_Relay(3);//读取第四通道的输入状态,并将结果赋值给temp。

那么可以根据temp的值来判断当前IO输入的状态:

温度为0:该通道无信号输入(逻辑值为0,低电平)。

Temp为1:该通道有信号输入(逻辑值为1,高电平)。

Temp为2:传入参数通道错误。

串口通讯相关功能

智能嵌入式物联网双串口IO控制板同时具有RS232和RS485接口,可独立使用。

串口接收缓冲区和缓冲区大小在“ZQWL_IO_xBNRRx.h”文件中定义:

RS232_Init 函数

函数原型如下:

该函数为RS232串口初始化函数。如果要使用RS232通讯功能,必须调用该函数初始化通讯相关参数。

例子:

注意这个函数的第三个参数奇偶校验必须是以下三个:

.

如果函数调用成功,则返回值为0,否则返回相应的错误信息。

RS485_Init 函数

函数原型如下:

该函数为RS485串口初始化函数。如果要使用RS485通讯功能,必须调用该函数初始化通讯参数。

例子:

注意这个函数的第三个参数奇偶校验必须是以下三个:

.

如果函数调用成功,则返回值为0,否则返回相应的错误信息。

RS232_Send_Data 函数

函数原型如下:

该函数为串口发送函数。 RS232_Init()函数必须在调用该函数之前正确调用。

示例1,直接发送字符串:

RS232_Send_Data(“1234567890”,10);

示例2,发送数组中的数据:

unsigned char temp[10];

RS232_Send_Data(temp,10);

RS485_Send_Data 函数

函数原型如下:

该函数为串口发送函数。 RS485_Init()函数必须在调用该函数之前正确调用。

示例1,直接发送字符串:

RS485_Send_Data(“1234567890”,10);

示例2,发送数组中的数据:

unsigned char temp[10];

RS485_Send_Data(temp,10);

RS232_Recv_Handler 函数

函数原型如下:

该函数类似于中断函数可编程控制器的定义,不能被其他函数调用。该函数必须在正确调用 RS232_Init() 函数后才能生效。建议先在这个函数中复制buff中的数据,然后退出,在其他函数中处理数据。

例子:

RS485_Recv_Handler 函数

函数原型如下:

该函数类似于中断函数,不能被其他函数调用。该函数必须在正确调用 RS485_Init() 函数后才能生效。建议先在这个函数中复制buff中的数据,然后退出,在其他函数中处理数据。

例子:

系统指标相关功能

本系列控制板带有系统LED指示灯,可用于指示系统运行状态。

RUN_LED_Toggle 功能

函数原型如下:

该函数实现了系统LED的状态反转功能(调用后灭灯亮,亮灯灭)。

例子:

RUN_LED_Toggle(); //调用后,指标状态翻转。

RUN_LED_ON 功能

函数原型如下:

图片[1]-智嵌串口IO模块提供了用户编程接口,增强了应用Read的灵活性-老王博客

例子:

RUN_LED_ON();//点亮系统LED指示灯

RUN_LED_OFF 函数

函数原型如下:

例子:

RUN_LED_OFF();//关闭系统LED指示灯

延迟相关函数Delay_ms函数

函数原型如下:

例子:

Delay_ms(500);//延迟500ms.

Delay_ms(2000);//延迟2000ms.

Delay_us 函数

函数原型如下:

例子:

Delay_us(500);//延迟500微秒。

Delay_us(999);//延迟999微秒。

定时器相关函数Timer_IRQHandler函数

函数原型如下:

该函数为中断函数,不能被其他函数调用。每1ms中断一次,用户可以在此基础上设计各种定时服务功能。比如设计一个10ms的定时服务函数:

看门狗相关函数IWDG_Init函数

函数原型如下:

例子:

IWDG_Init(WD_1000MS); //设置看门狗定时器为1000ms。

IWDG_Init(WD_2000MS); //设置看门狗定时器为2000ms。

Feed_Dog 函数

函数原型如下:

如果调用IWDG_Init(),则必须周期性调用Feed_Dog()函数,且调用周期必须小于看门狗定时器的设定值。否则系统会不断重置。

建议在产品开发阶段不要使用看门狗功能,在产品发布时添加该功能。

Flash相关功能

该系列控制板均提供128字节的用户flash空间,可用于存储控制板断电后需要保存的参数,如波特率、地址码等。

User_Flash_Write 函数

函数原型如下:

例子:

User_Flash_Read 函数

函数原型如下:

例子:

系统异常相关函数HardFault_Handler函数

函数原型如下:

当系统出现异常时,如指针操作不当、数组操作不当等,会进入此中断。

系统复位相关函数MCU_Soft_Reset函数

函数原型如下:

调用该函数后,系统会复位。

CAN相关函数

CAN 相关功能仅在控制板硬件上具有 CAN 通信的版本中支持。

CAN相关数据结构定义:

CAN_配置函数

在使用CAN通讯前必须正确调用该函数。

CAN_Recv_IRQHandler 函数

例子:

CAN_Send_Data 函数

主要功能

该函数为系统入口函数,提供如下示例:

模块编程开发环境

模块开发环境使用keil5.10版本(其他版本未验证)。 keil使用教程请参考其他开发文档。 keil5安装包在MDK5.zip.

控制板的keil5项目在“包”中提供

打开“包”:

这是控制面板的工程文件,打开文件:

打开“项目”:

双击上图中的“pro”,可以通过keil软件打开工程,工程配置如下:

关于KEIL软件的使用,请自行查找学习。

工程编译后会生成一个IO_APP.bin文件(路径:ZQWL_IO_APP(双串口+CAN)_V1.2\project\BIN):

如果是其他网络模块,需要从工程中移除“xBXRA16_V1.0.lib”,然后添加对应的lib文件(路径:ZQWL_IO_APP\App):

程序下载

智能嵌入式串口IO模块固件通过“智能嵌入式物联网串口继电器控制板固件升级工具”下载:

点击上图中的“浏览”,将编译好的IO_APP.bin文件加载到软件中,然后点击“打开”,点击“开始升级”即可下载固件,下载完成后会自动运行:

p>

程序错误处理

调试程序时不可避免地会出现程序错误。报错后,可能会导致模块无法直接下载。在这种情况下,您需要按照以下步骤操作:

第 1 步:关机。

第二步:将所有拨码开关拨到OFF状态(强制进入固件升级状态)。

第三步:上电,看到模块运行灯快闪,表示进入固件下载模式,此时可以下载固件到模块。请注意,在此过程中,请确保拨码开关始终处于关闭状态。

注意ZQWL Smart Embedded IoT的部分网络IO控制器也支持编程功能,如ZQWL-NET8880M型号,Smart IO,功能更强大。此外,ZQWL新推出的Smart GW串口服务器也具有编程功能。该类产品的通讯接口支持4G、网口、WIFI、CAN、RS485等,部分产品还具有IO扩展功能,性能更好。功能强大,使用更方便。返回搜狐,查看更多

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论