找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9086|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

LPC11C14 Keil uVision4 CoLink 仿真器 環(huán)境搭建

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71922 發(fā)表于 2015-1-10 22:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
之前做了一個(gè)項(xiàng)目(LPC11C14 數(shù)據(jù)采集節(jié)點(diǎn)部分)的筆記,有時(shí)候在地鐵上還可以復(fù)習(xí)復(fù)習(xí)。
項(xiàng)目會(huì)議記錄

1、主控制器
        FS210開(kāi)發(fā)板做為主機(jī),采用安卓4.0.4系統(tǒng)。
        接入模塊:Zigbee模塊(數(shù)據(jù)交互)、Camera模塊(監(jiān)控)、GSM模塊(發(fā)送接受短信)

2、數(shù)據(jù)節(jié)點(diǎn)控制器
        M0開(kāi)發(fā)板,采用裸機(jī)或ucos操作系統(tǒng)
        接入模塊:Zigbee模塊(數(shù)據(jù)交互)、風(fēng)扇(降溫)、傳感器(采集數(shù)據(jù))、蜂鳴器(警報(bào))

項(xiàng)目功能:       
主控制器實(shí)現(xiàn)功能:
APK 應(yīng)用
        可設(shè)置報(bào)警閥值:當(dāng)溫度值超過(guò)指定閥值,發(fā)送指令控制M0啟動(dòng)風(fēng)扇并通過(guò)GSM模塊發(fā)送短信
        界面設(shè)計(jì):
        1、顯示至少兩個(gè)節(jié)點(diǎn)傳過(guò)來(lái)的數(shù)據(jù),如每個(gè)節(jié)點(diǎn)采集到的溫度、濕度等
        2、Camera攝像頭視頻
        3、需要設(shè)置界面,提供設(shè)置必要的參數(shù),如設(shè)置發(fā)送報(bào)警短信內(nèi)容,報(bào)警閥值等
        (盡量美觀,人性化)
       
數(shù)據(jù)節(jié)點(diǎn)控制器功能:
        1、采集數(shù)據(jù),通過(guò)Zigbee回傳給主控制器(通過(guò)各種傳感器獲取數(shù)據(jù))
        2、監(jiān)聽(tīng)主控制器的命令,控制風(fēng)扇、蜂鳴器等

(主控制器與數(shù)據(jù)節(jié)點(diǎn)控制區(qū)通過(guò)Zibgec模塊進(jìn)行數(shù)據(jù)交互)

需要做的事情:
主控制器

驅(qū)動(dòng)層:
        1、操作系統(tǒng)安裝、環(huán)境搭建(完成)
        2、LCD 驅(qū)動(dòng)
                需知道LVDS代碼位置
        3、GT811 觸摸屏移植        (完成)
        4、Camera 驅(qū)動(dòng)移植
        5、GSM 驅(qū)動(dòng)
       
系統(tǒng)層:
        1、GT811 輸入子系統(tǒng)
        2、Camera 主要是HAL層 需要熟悉 Camera 子系統(tǒng)(照相機(jī)子系統(tǒng))、V4L2
        3、RILD庫(kù)(電話(huà)子系統(tǒng)) 對(duì)應(yīng)GSM模塊
        4、系統(tǒng)回調(diào) 對(duì)應(yīng)Zigbee的數(shù)據(jù)回傳 需要編寫(xiě)JNI去回調(diào)Java的方法刷UI

應(yīng)用層:
        界面自設(shè)計(jì):
        界面包含,顯示節(jié)點(diǎn)回傳的數(shù)據(jù),顯示攝像頭的視頻數(shù)據(jù),設(shè)置界面
       
數(shù)據(jù)節(jié)點(diǎn)控制器:
        1、Zigbee 驅(qū)動(dòng)
        2、數(shù)據(jù)采集
                三軸加速度傳感器
                光敏傳感器
                溫度傳感器
                濕度傳感器
                ADC電壓測(cè)量

        3、降溫、警報(bào)
                風(fēng)扇驅(qū)動(dòng) (帶轉(zhuǎn)速回饋)
                蜂鳴器(警報(bào))

               
GT811觸摸屏 - APK - Camera

GSM

M0 - Zigbee == FS210 - Zigbee  聯(lián)調(diào)
-----------------------------------------------------------------------------------------------------------------uVision4 編譯問(wèn)題
解決last line of file ends without a newline問(wèn)題
warning:  #1-D: last line of file ends without a newline
CCS3.3中,有時(shí)候會(huì)出現(xiàn)warning:  #1-D: last line of file ends without a newline這種警告,只需在最后一行添加回車(chē)就可解決問(wèn)題。
-----------------------------------------------------------------------------------------------------------------
環(huán)境搭建:
1、 安裝 Keil uVision4 2、CoLink 仿真器的程序安裝
    參考 Android 物聯(lián)網(wǎng)\FS_11C14光盤(pán)\FS_11C14開(kāi)發(fā)板用戶(hù)手冊(cè) V1.02.pdf 第12頁(yè)
         
裸板代碼:?jiǎn)?dòng)【KEIL uVision4】

建立工程:
1、【Project】-> 【New uVision Project】-> 選擇文件夾 -> 輸入工程名: Test
2、KEIL 自動(dòng)彈出Select Device for Target 窗口,選擇CPU 【NXP (founded...)】->【LPC11C14x301】
       彈出對(duì)話(huà)框詢(xún)問(wèn)是否拷貝啟動(dòng)代碼到工程中,選擇【是】,不然無(wú)法編譯。
3、新建立一個(gè)源文件,名字為main.c

燒錄配置:(不配置,無(wú)法燒錄程序到M0上)1、【Flash】->【Configure Flash Tools】
2、在Use Target Driver for Flash Programming 選擇 【CooCox Debugger】
3、點(diǎn)擊旁邊的按鈕【Settings】,在Additional Option 勾選【Run after Download】、【Verify Download】





調(diào)試配置:1、【Flash】->【Configure Flash Tools】,切換到Debug標(biāo)簽
2、在Use 旁邊的下啦菜單選擇 CooCox Debugger 點(diǎn)擊旁邊的按鈕【Settings】


3、在Reset Options 下啦菜單選擇 HW RESET
4、在Adapter 下拉菜單選擇 ColinkEx


  
第一個(gè)裸板工程是操作LED,LPC11C14 開(kāi)發(fā)板控制LED的原理圖            





由此可見(jiàn),LED燈是接在M0的 PIO3_0、PIO3_1
我們要操作該端口需要知道真實(shí)的物理地址,查看數(shù)據(jù)手冊(cè)。







得知 PIO的基址為 0x5000 0000,PIO3的基址為 0x5003 000
數(shù)據(jù)寄存器相對(duì)于PIO3_0偏移 0x3FFC
方向寄存器相對(duì)于PIO3_0偏移 0x8000


#include <stdio.h>

#define LPC_AHB_BASE          (0x50000000UL)                        // PIO基址
#define LPC_GPIO3_BASE        (LPC_AHB_BASE  + 0x30000)    // PIO3的基址

#define GPC3DIR    (LPC_GPIO3_BASE + 0x8000)              // PIO3 方向寄存器地址
#define GPC3DAT    (LPC_GPIO3_BASE + 0x3FFC)              // PIO3 數(shù)據(jù)寄存器地址

#define writel(val,reg)  (*((volatile unsigned int *)reg)=val)
#define readl(reg) *((volatile unsigned int *)reg)

void sleep()
{
int i = 99;
int j = 0;
while(i--)
for(j=0; j<999; j++ );

}   

int main(void)
{
   writel(1, GPC3DIR);          // 設(shè)置為輸出模式
   while(1)
   {
     sleep();                        // 延時(shí)
  writel(1, GPC3DAT);    // 寫(xiě)入1 即輸出高電平
  sleep();                        // 延時(shí)
  writel(0, GPC3DAT);     // 寫(xiě)入0 即輸出低電平 點(diǎn)亮LED等
   }
}


在編譯的過(guò)程中,如果源文件和頭文件都不在工程根目錄,而另建立了文件夾,則需要在工程中指定尋找頭文件的首選路徑。





                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:75874 發(fā)表于 2015-4-1 17:34 | 只看該作者
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表