音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

關(guān)于串口驅(qū)動(dòng)及中間件的使用--影舞者

作者:ddees 欄目:ARM技術(shù)
關(guān)于串口驅(qū)動(dòng)及中間件的使用--影舞者
用了一段時(shí)間的2214,做了一個(gè)串口驅(qū)動(dòng)和中間件的程序,此程序適用于
利用報(bào)文進(jìn)行通信的地方,如電力設(shè)備等等,在應(yīng)用中測(cè)試通信

環(huán)境支持:
1:UCOS-II操作系統(tǒng)
2:2214CPU

原先的通信問(wèn)題:
1:在電力通信一般是以報(bào)文通信為主,串口每收到一個(gè)字節(jié)就中斷一次,再由上層程序再處理,根據(jù)報(bào)文協(xié)議操作,這程序易亂,且維護(hù)不易,在擴(kuò)展通信協(xié)議時(shí)更不好處理
2:CPU利用低

現(xiàn)在的通信修改,對(duì)通信僅提供五個(gè)函數(shù),管理所有的通信口
ARM_UARTS_EXT  uint8   Driver_Comm_Init(void);
ARM_UARTS_EXT  uint8   Driver_Set_Comm_State(uint8 use_index,uint8 use_state);
ARM_UARTS_EXT  uint8   Driver_Release_Comm(uint8 use_index);
ARM_UARTS_EXT  uint8   Driver_Apply_Comm(uint8 use_for);
ARM_UARTS_EXT  uint8   Driver_Comm_Frame(uint8 *Frame_Data,uint16 Frame_Length,uint8 uart_num,uint8 wait_echo);


此程序還沒(méi)有處理超時(shí)接收問(wèn)題,使用時(shí)注意

/*****************************************************************************************
版權(quán)所有:   影舞者
版本號(hào):     2.52
文件名:     ARM_UARTS.H
生成日期:   1900.1.1
作者:       影舞者
功能說(shuō)明:   系統(tǒng)串口通信配置文件
其它說(shuō)明:   管理ARM的所有串口通信,目前管理
            UART0、UART1、SPI0、SPI1四個(gè)
*****************************************************************************************/

#ifdef   ARM_UARTS_GLOBALS
#define  ARM_UARTS_EXT   
#else
#define  ARM_UARTS_EXT  extern
#endif



// 緩沖區(qū)設(shè)置
#define    Frame_Number            60                                // 幀數(shù)
#define    Frame_Size              300                               // 幀大小
ARM_UARTS_EXT  uint8     Driver_Comm_Buf[Frame_Number][Frame_Size];  // 緩沖區(qū)
ARM_UARTS_EXT  uint8     Driver_Comm_Users[Frame_Number];            // 幀用途
ARM_UARTS_EXT  uint16    Driver_Comm_Number[Frame_Number];           // 幀里數(shù)據(jù)大小
ARM_UARTS_EXT  uint16    Driver_Comm_Index[Frame_Number];            // 幀數(shù)據(jù)操作索引

ARM_UARTS_EXT  OS_EVENT  *DRIVER_COMM_OPERATE;                       // 緩沖區(qū)操作權(quán)信號(hào)量,有數(shù)據(jù)等待操作時(shí),信號(hào)量不為0


// 通信監(jiān)視開(kāi)關(guān),1-開(kāi).0-關(guān)
ARM_UARTS_EXT  uint8     OPEN_UART0_COMM;                            // UART0通信監(jiān)視開(kāi)關(guān)
ARM_UARTS_EXT  uint8     OPEN_UART1_COMM;                            // UART1通信監(jiān)視開(kāi)關(guān)
ARM_UARTS_EXT  uint8     OPEN_SPI0_COMM;                             // SPI0通信監(jiān)視開(kāi)關(guān)
ARM_UARTS_EXT  uint8     OPEN_SPI1_COMM;                             // SPI1通信監(jiān)視開(kāi)關(guān)
ARM_UARTS_EXT  uint8     OPEN_POSSE_COMM;                            // 所有通信監(jiān)視開(kāi)關(guān)

// 是否應(yīng)答
#define    WAIT_ECHO                1                                
#define    NO_ECHO                  0  

// UARTS報(bào)文緩沖區(qū),幀用途:   
#define    COMM_BUF_IDLESSE        00                                // 空閑空間

#define    UART0_SEND              10                                // 申請(qǐng)用于UART0發(fā)送數(shù)據(jù)
#define    UART0_SEND_OK           11                                // 處理完畢,數(shù)據(jù)可以UART0發(fā)送
#define    UART0_RECEIVE           12                                // 申請(qǐng)用于UART0發(fā)送數(shù)據(jù)
#define    UART0_RECEIVE_OK        13                                // 處理完畢,接收完UART0數(shù)據(jù)

#define    UART1_SEND              20                                // 申請(qǐng)用于UART1發(fā)送數(shù)據(jù)
#define    UART1_SEND_OK           21                                // 處理完畢,數(shù)據(jù)可以UART1發(fā)送
#define    UART1_RECEIVE           22                           &nb
2樓: >>參與討論
jft
hao
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
求助周工:LPC2119
誰(shuí)能告訴我,適于LPC2210的片外RAM和FLASH有哪幾款
俺寫(xiě)的lpc2132的串口驅(qū)動(dòng)(中斷方式)
我的程序老是停在;取數(shù)據(jù)中止處,該怎么解決?
用什么軟件可以將圖片轉(zhuǎn)換成16進(jìn)制?
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)