- 概述
智嵌物聯串口IO模塊提供了用戶編程接口,增強了應用的靈活性,簡化了用戶的編程的難度,縮短了開發產品的周期;用戶不需要了解IO板卡底層驅動,只需將控制邏輯和通訊協議嵌入其中即可。
串口IO模塊提供keil開發環境下的函數庫,功能強大,使用方便。開發人員只需略懂C語言(提供詳盡技術指導和咨詢)就可以在本司串口IO平臺上開發所需功能。
- 開關量相關函數
- Write_Relay函數
函數原型如下:
該函數需被其他函數調用才能使用。
舉例:
Write_Relay(0,1);//閉合第一路繼電器的常開觸點,斷開常閉觸點。
Write_Relay(1,0);//斷開第二路繼電器的常閉觸點,打開常開觸點。
在使用過程中,注意傳入的參數(channel,status)不能出錯,channel的范圍為0到N,N為控制板IO輸出點個數;status的值只能為0或1。參數超出定義范圍時,函數將返回錯誤信息。
- Read_Relay函數
函數原型如下:
該函數需被其他函數調用才能使用。
舉例:
unsigned char temp = 0;
temp =Read_Relay(0);//讀取第一路的輸出狀態并將結果賦給temp。
temp =Read_Relay(3);//讀取第四路的輸出狀態并將結果賦給temp。
然后根據temp的值即可判斷當前IO輸出的狀態:
temp為0則:常開觸點斷開,常閉觸點閉合。
temp為1則:常閉觸點斷開,常開觸點閉合。
temp為2則:傳入的參數channel錯誤。
temp為3則:其他未知錯誤。
- 開關量輸入相關函數
- Read_IN函數
函數原型如下:
該函數需被其他函數調用才能使用。
舉例:
unsigned char temp = 0;
temp =Read_IN(0);//讀取第一路的輸入狀態并將結果賦給temp。
temp =Read_Relay(3);//讀取第四路的輸入狀態并將結果賦給temp。
然后根據temp的值即可判斷當前IO輸入的狀態:
temp為0則:該路為無信號輸入(邏輯值為0,低電平)。
temp為1則:該路為有信號輸入(邏輯值為1,高電平)。
temp為2則:傳入的參數channel錯誤。
- 串口通訊相關函數
智嵌物聯雙串口IO控制板均有RS232和RS485接口,這兩種接口可以獨立使用。
串口接收緩沖器以及緩沖器大小在“ZQWL_IO_xBNRRx.h”文件中有定義:
- RS232_Init函數
函數原型如下:
該函數為RS232串口初始化函數,如果要使用RS232通訊功能,必須調用該函數來初始化通訊相關參數。
舉例:
注意該函數的第三個參數parity,必須為以下三種:
。
如果該函數調用成功則返回值為0,否則返回相應的錯誤信息。
- RS485_Init函數
函數原型如下:
該函數為RS485串口初始化函數,如果要使用RS485通訊功能,必須調用該函數來初始化通訊相關參數。
舉例:
注意該函數的第三個參數parity,必須為以下三種:
。
如果該函數調用成功則返回值為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中的數據復制出來,然后退出,在別的函數中進行數據的處理。
舉例:
- 系統指示燈相關函數
該系列控制板有1個系統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微秒。
函數原型如下:
該函數為中斷函數,不能被其他函數調用。每隔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函數
函數原型如下:
調用該函數后,系統將復位。
- CAN相關函數
只有控制板硬件具有CAN通訊的版本才支持CAN相關函數。
CAN相關的數據結構定義:
- CAN_Configuration函數
使用CAN通訊前必須正確調用該函數。
- CAN_Recv_IRQHandler函數
例如:
- CAN_Send_Data函數
- main函數
該函數為系統入口函數,提供如下示例:
- 模塊編程
- 開發環境
該模塊開發環境使用keil 5.10版本(其他版本未驗證),有關keil的使用教程請參考其他開發文檔,keil5的安裝包在MDK5.zip里面。
在“軟件包”里有該控制板的keil5工程
打開“軟件包”:
此即為該控制板的工程文件, 打開文件:
打開“Proj”:
雙擊上圖中的“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文件載入軟件,然后點“打開”,接點“開始升級”,即可實現固件的下載,下完成后自動運行:
- 程序出錯處理
在調試程序時難免會出現程序出錯,出錯后可能造成不能直接對模塊進行固件下載,這時需要按照如下步驟操作:
第一步:斷電。
第二步:將撥碼開關全部撥到OFF狀態(強制進入升級固件狀態)。
第三步:上電,此時看到模塊的運行燈快速閃爍,說明進入到了固件下載模式,此時就可以對模塊下載固件了。注意此過程中要保證撥碼開關一直全OFF狀態。
注意,智嵌物聯網ZQWL的部分網絡IO控制器也支持編程功能,如型號ZQWL-NET8880M,Smart IO,該類產品功能更強大。除此之外,智嵌物聯ZQWL新推出的Smart GW串口服務器也具有編程功能,該類產品通訊接口支持4G,網口,WIFI,CAN,RS485等,部分產品也具有IO擴展功能,性能更強大,使用更方便。
-
IO控制器
+關注
關注
0文章
25瀏覽量
7537
發布評論請先 登錄
相關推薦
評論