概述ZQWL针对智能嵌入式物联网开发的DAM-5802D模块提供了用户编程接口,增强了应用灵活性,简化了用户编程难度,缩短了产品开发周期;用户不需要了解板子的底层驱动程序,只需要嵌入其中的控制逻辑和通信协议。
DAM-5802D模块提供keil开发环境下的函数库,功能强大且易于使用。开发者只需要了解一点C语言(提供详细的技术指导和咨询)就可以在我们的DAM-5802D平台上开发所需的功能。
开关相关函数Write_Relay函数原型如下:
该函数需要被其他函数调用才能使用。
例子:
Write_Relay(0,1);//闭合第一个继电器的常开触点,打开常闭触点。
Write_Relay(1,0);//断开第二个继电器的常闭触点,打开常开触点。
使用时请注意传入的参数(通道、状态)不能有错。通道范围为0N,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:其他未知错误。
串行通信相关功能ZQWL_DAM_5802D具有RS485接口,用于发送和接收数据。
UART_Init函数函数原型如下:
该函数是串口初始化函数。如果要使用RS232/485通讯功能,必须调用该函数初始化通讯相关参数。
例子:
注意,该函数的第三个参数奇偶校验必须是以下三种类型之一:
如果函数调用成功,返回值为0,否则返回相应的错误信息。
UART_Send_Data函数函数原型如下:
该函数为串口发送函数。在调用该函数之前,必须正确调用UART_Init() 函数。
示例1,直接发送字符串:
UART_Send_Data('1234567890',10);
例2、发送数组中的数据:
无符号字符临时[10];
UART_Send_Data(临时,10);
UART_Recv_Handler函数函数原型如下:
该函数类似于中断函数,不能被其他函数调用。必须正确调用该函数后,UART_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);//延迟500毫秒。
Delay_ms(2000);//延迟2000毫秒。
Delay_us函数原型如下:
例子:
Delay_us(500);//延迟500微秒。
Delay_us(999);//延迟999微秒。
定时器相关函数Timer_IRQHandler函数原型如下:
该函数是中断函数,不能被其他函数调用。每1ms中断一次。在此基础上,用户可以设计各种授时服务功能。例如设计一个10ms的定时服务函数:
看门狗相关函数IWDG_Init函数原型如下:
例子:
IWDG_Init(WD_1000MS); //设置看门狗定时器为1000毫秒。
IWDG_Init(WD_2000MS); //设置看门狗定时器为2000毫秒。
Feed_Dog函数的函数原型如下:
如果调用IWDG_Init(),则必须定期调用Feed_Dog()函数,且调用周期必须小于看门狗定时器设置值。否则,系统将继续重置。
建议在产品开发阶段不要使用看门狗功能,等产品发布时再添加该功能。
Flash相关功能该系列控制板均提供128字节的用户Flash空间,可用于存储控制板掉电后需要保存的参数,如波特率、地址码等。
User_Flash_Write函数的函数原型如下:
例子:
User_Flash_Read函数的函数原型如下:
例子:
系统异常相关函数HardFault_Handler函数原型如下:
当系统出现异常时,如指针操作不当、数组操作不当等,就会进入该中断。
系统复位相关函数MCU_Soft_Reset函数原型如下:
调用该函数后,系统将被重置。
main函数该函数是系统入口函数。提供了以下示例:
模拟变量声明提供了ADC值、0~5V电压值、0~10V电压值和0~20mA电流值的集合,并统一输出到一个结构体中:
变量的声明位于ZQWL_DAM_5802D.h 文件中。
模块编程开发环境本模块开发环境使用keil 5.10版本(其他版本未验证)。 keil的使用教程请参考其他开发文档。 keil5安装包下载地址:
https://pan.baidu.com/s/1rAgGc5AjeSDBvNq1KSFNsg 提取码: jxeq。
《可编程信息》中有控制板的keil5工程
打开“可编程信息”:
这是控制面板的项目文件。打开文件:
打开“项目”:
双击上图中的“LED”,通过keil软件打开工程。
项目配置如下图:
编译后会生成IO_APP.bin文件(路径:ZQWL_IO_APP\Proj\BIN):
程序下载智能嵌入式串口IO模块的固件通过“智能嵌入式物联网串口继电器控制板固件升级工具”下载:
点击上图中的“浏览”,将编译好的IO_APP.bin文件加载到软件中,选择串口参数,然后点击“打开”,点击“开始升级”即可下载固件。下载完成后会自动运行:
程序错误处理在调试程序时,难免会出现程序错误。出现错误后,可能无法直接下载模块固件。在这种情况下,您需要执行以下步骤:
第一步:切断电源。
步骤2:按住模块上的按钮。
第三步:开机。如果看到模块的运行灯快速闪烁,则说明模块已进入固件下载模式。此时,您可以将固件下载到模块中。请注意,在下载成功之前,在此过程中您无法释放按钮。
需要注意的是,ZQWL的部分网络IO控制器还支持编程功能,如型号ZQWL-NET8880M、Smart IO。这些产品具有更强大的功能。此外,ZQWL新推出的Smart GW串口服务器还具有编程功能。该类型产品的通讯接口支持4G、网口、WIFI、CAN、RS485等,部分产品还具有IO扩展功能,性能更好。功能强大且更易于使用。