
概览
智能物联网串口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 功能
函数原型如下:
例子:
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扩展功能,性能更好。功能强大,使用更方便。返回搜狐,查看更多
请登录后发表评论
注册
社交帐号登录