本文來源電子發(fā)燒友社區(qū),作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2286219_1_1.html
本文分為兩部分:開發(fā)環(huán)境搭建和跑通例程
1. 開發(fā)環(huán)境搭建 首先按照文檔從官網(wǎng)下下來安裝包,裝好之后導(dǎo)入例程,準(zhǔn)備開始編譯。
然后就遇到了第一個(gè)坑,我本機(jī)的開發(fā)環(huán)境比較復(fù)雜,從嵌入式開發(fā)到客戶端軟件開發(fā),從后臺(tái)服務(wù)到前端web都有,什么nodejs,python,vs2012,idea都有,光jdk和eclipse就裝了好幾個(gè)版本。導(dǎo)致Haawking IDE裝好之后,例程導(dǎo)入不管怎么編譯都報(bào)錯(cuò),卸了重裝也不行,報(bào)錯(cuò)如下。后來還是在官方技術(shù)人員gengzh的幫助下才發(fā)現(xiàn)是本機(jī)上裝有mingw,和haawking的編譯環(huán)境沖突了。
2. 跑通例程
選了一個(gè)數(shù)碼管顯示遞增數(shù)字的例程HX_DSC28027_IIC_TM1650來跑。
首先介紹下原理,設(shè)置定時(shí)器1ms中斷,主程序?qū)χ袛啻螖?shù)循環(huán)計(jì)數(shù),360次中斷即360ms通過iic接口向數(shù)碼管發(fā)送顯示指令,顯示指令包括(千位,百位,十位,個(gè)位),還做了按鍵中斷響應(yīng),當(dāng)按下101按鍵時(shí),遞增千位數(shù)值,當(dāng)按下103按鍵時(shí),計(jì)數(shù)清零,數(shù)碼管顯示0000。
原理不復(fù)雜,用到了定時(shí)器中斷,按鍵中斷和iic通信。詳細(xì)程序如下。
復(fù)制代碼
燒寫可寫入flash,也可寫入ram。寫入ram計(jì)算會(huì)更快一些,可以把一些無狀態(tài)的函數(shù)放到ram中,有狀態(tài)函數(shù)和存儲(chǔ)數(shù)據(jù)庫放到flash中。
debug過程中需要講撥碼開關(guān)全部撥到左側(cè)。在ide中進(jìn)行debug,通過watch面板觀察斷點(diǎn)時(shí)變量值,也可以通過live view觀察變量值的連續(xù)變化情況。
最后上一個(gè)燒寫成功,正在運(yùn)行的圖。再次感謝官方技術(shù)人員gengzh。
本文分為兩部分:開發(fā)環(huán)境搭建和跑通例程
1. 開發(fā)環(huán)境搭建 首先按照文檔從官網(wǎng)下下來安裝包,裝好之后導(dǎo)入例程,準(zhǔn)備開始編譯。
然后就遇到了第一個(gè)坑,我本機(jī)的開發(fā)環(huán)境比較復(fù)雜,從嵌入式開發(fā)到客戶端軟件開發(fā),從后臺(tái)服務(wù)到前端web都有,什么nodejs,python,vs2012,idea都有,光jdk和eclipse就裝了好幾個(gè)版本。導(dǎo)致Haawking IDE裝好之后,例程導(dǎo)入不管怎么編譯都報(bào)錯(cuò),卸了重裝也不行,報(bào)錯(cuò)如下。后來還是在官方技術(shù)人員gengzh的幫助下才發(fā)現(xiàn)是本機(jī)上裝有mingw,和haawking的編譯環(huán)境沖突了。


2. 跑通例程
選了一個(gè)數(shù)碼管顯示遞增數(shù)字的例程HX_DSC28027_IIC_TM1650來跑。
首先介紹下原理,設(shè)置定時(shí)器1ms中斷,主程序?qū)χ袛啻螖?shù)循環(huán)計(jì)數(shù),360次中斷即360ms通過iic接口向數(shù)碼管發(fā)送顯示指令,顯示指令包括(千位,百位,十位,個(gè)位),還做了按鍵中斷響應(yīng),當(dāng)按下101按鍵時(shí),遞增千位數(shù)值,當(dāng)按下103按鍵時(shí),計(jì)數(shù)清零,數(shù)碼管顯示0000。
原理不復(fù)雜,用到了定時(shí)器中斷,按鍵中斷和iic通信。詳細(xì)程序如下。
- int main(void)
- {
- /*初始化系統(tǒng)控制*/
- InitSysCtrl();
- /*初始化LED*/
- InitLED();
- /* 清除所有中斷和初始化PIE向量表*/
- /*禁用CPU中斷*/
- DINT;
- /*初始化PIE控制寄存器到默認(rèn)狀態(tài),默認(rèn)狀態(tài)是全部PIE中斷被禁用和標(biāo)志位被清除*/
- InitPieCtrl();
- /*禁用CPU中斷和清除所有CPU中斷標(biāo)志位*/
- IER = 0x0000;
- IFR = 0x0000;
- /*初始化PIE中斷向量表,為PIE向量表中的所有中斷向量配置對(duì)應(yīng)向量的入口地址*/
- InitPieVectTable();
- /*定時(shí)器0初始化*/
- timer0_init();
- /*初始化IIC總線的Gpio*/
- InitI2C_Gpio();
- /*IIC初始化*/
- I2CA_Init();
- /*軟件復(fù)位IIC從設(shè)備*/
- softResetIIC_BUS();
- //printf("rnTM1650 init...");//標(biāo)準(zhǔn)C的printf輸出測(cè)試,串口調(diào)試助手設(shè)置波特率128000bps,ASCII格式顯示
- /*BIT6到BIT4為亮度調(diào)節(jié),BIT0是1 開啟/0關(guān)閉*/
- LigntVal = 0x11;
- /*1級(jí)亮度,開啟顯示*/
- TM1650_Send(CMD_SEG, LigntVal);
- /*DIG0-DIG3均顯示0*/
- TM1650_Send(DIG0, SEG7Table[0]);
- TM1650_Send(DIG1, SEG7Table[0]);
- TM1650_Send(DIG2, SEG7Table[0]);
- TM1650_Send(DIG3, SEG7Table[0]);
- /*使能全局中斷*/
- EINT;
- /*使能調(diào)試事件*/
- while(1)
- {
- /*間隔為360ms*/
- if(CpuTimer0.InterruptCount >= 360)
- {
- /*定時(shí)器0中斷次數(shù)清零*/
- CpuTimer0.InterruptCount = 0;
- /*D401翻轉(zhuǎn)*/
- GpioDataRegs.GPATOGGLE.bit.GPIO6 = 1;
- /*Tmp累加,從0-999循環(huán)*/
- Tmp++;
- if(Tmp > 999)
- Tmp = 0;
- /*DIG1顯示Tmp的百位*/
- TM1650_Send(DIG1, SEG7Table[Tmp / 100]);
- /*DIG2顯示Tmp的十位*/
- TM1650_Send(DIG2, SEG7Table[(Tmp / 10) % 10]);
- /*DIG3顯示Tmp的個(gè)位*/
- TM1650_Send(DIG3, SEG7Table[Tmp % 10]);
- /*TM1650獲取掃描按鍵S101 S102 S103,控制數(shù)碼管數(shù)字顯示及亮度調(diào)節(jié)*/
- TM1650_Read(CMD_KEY, &keyVal);
- /*S101按下時(shí),DIG0顯示內(nèi)容+1*/
- if(keyVal == 0x44)
- {
- keyReg++;
- keyReg &= 0x0f;
- TM1650_Send(DIG0, SEG7Table[keyReg]);
- }
- /*S102按下時(shí),改變數(shù)碼管顯示亮度*/
- if(keyVal == 0x4c)//
- {
- /*高四位為亮度調(diào)節(jié),最后1位是開啟、關(guān)閉顯示*/
- LigntVal = (LigntVal + 0x20) & 0x7F;
- /*1級(jí)亮度,開啟顯示*/
- TM1650_Send(CMD_SEG, LigntVal);
- }
- /*按下S103時(shí)*/
- if(keyVal == 0x54)
- {
- Tmp = 0;
- keyReg = 0;
- /*DIG0-DIG3清零*/
- TM1650_Send(DIG0, SEG7Table[0]);
- TM1650_Send(DIG1, SEG7Table[0]);
- TM1650_Send(DIG2, SEG7Table[0]);
- TM1650_Send(DIG3, SEG7Table[0]);
- /*D400翻轉(zhuǎn)*/
- GpioDataRegs.GPATOGGLE.bit.GPIO7 = 1;
- }
- }
- }
- }
燒寫可寫入flash,也可寫入ram。寫入ram計(jì)算會(huì)更快一些,可以把一些無狀態(tài)的函數(shù)放到ram中,有狀態(tài)函數(shù)和存儲(chǔ)數(shù)據(jù)庫放到flash中。
debug過程中需要講撥碼開關(guān)全部撥到左側(cè)。在ide中進(jìn)行debug,通過watch面板觀察斷點(diǎn)時(shí)變量值,也可以通過live view觀察變量值的連續(xù)變化情況。
最后上一個(gè)燒寫成功,正在運(yùn)行的圖。再次感謝官方技術(shù)人員gengzh。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
中科昊芯
+關(guān)注
關(guān)注
5文章
83瀏覽量
5533 -
開發(fā)板試用
+關(guān)注
關(guān)注
3文章
302瀏覽量
2405
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+3.DSP基礎(chǔ)外設(shè)調(diào)試(含源碼)
前言
大家好,非常感謝電子發(fā)燒友與中科昊芯提供的DSC280025C開發(fā)板,這是一款DSP的開發(fā)板
發(fā)表于 07-13 16:07
有獎(jiǎng)丨米爾 瑞芯微RK3506開發(fā)板免費(fèi)試用來啦!
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3506應(yīng)用處理器的MYD-YR3506開發(fā)板免費(fèi)試用名額增加啦

【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+2.RAM工程與FLASH工程對(duì)比
前言
大家好,非常感謝電子發(fā)燒友與中科昊芯提供的DSC280025C開發(fā)板,這是一款DSP的開發(fā)板
發(fā)表于 07-04 10:37
【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+1.開箱之浮點(diǎn)計(jì)算對(duì)比
【中科昊芯Core_DSC280025C開發(fā)板試用體驗(yàn)】+1.開箱之浮點(diǎn)計(jì)算對(duì)比
前言
大家好,
發(fā)表于 06-29 10:01
有獎(jiǎng)丨米爾 瑞芯微RK3506開發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3506應(yīng)用處理器的MYD-YR3506開發(fā)板免費(fèi)試用名額來啦~~米爾提供了3塊價(jià)值299元的MYD-YR3506

迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝
迅為RK3576開發(fā)板NPUrknn-toolkit2環(huán)境搭建和使用docker環(huán)境安裝

迅為RK3576開發(fā)板NPU例程測(cè)試-rknn-toolkit2環(huán)境搭建和使用
迅為RK3576開發(fā)板NPU例程測(cè)試-rknn-toolkit2環(huán)境搭建和使用

有獎(jiǎng)丨米爾 瑞芯微RK3562開發(fā)板免費(fèi)試用新增名額!
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應(yīng)用處理器的MYD-YR3562開發(fā)板免費(fèi)試用名額增加

中科昊芯Core_DSC280025C開發(fā)板免費(fèi)試用
Core_DSC280025C核心板使用了昊芯HXS320F28025C RISC-V ? DSP芯片,該芯片集成了吳芯自主研發(fā)的H28x內(nèi)

中科昊芯DSP產(chǎn)品及公司信息
庫和驅(qū)動(dòng)庫,幫助用戶降低遷移成本,縮短開發(fā)周期。同時(shí),公司還推出了多種開發(fā)板和核心板,如Core_DSC28027和Start_DSC280
發(fā)表于 04-07 09:16
有獎(jiǎng)丨米爾 瑞芯微YR3562開發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應(yīng)用處理器的MYD-YR3562開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了3塊價(jià)值599元的MYD-YR3562

追加名額丨米爾瑞芯微RK3576開發(fā)板有獎(jiǎng)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)加碼啦~~米爾追加了2塊價(jià)值849元的MYD-LR3576

有獎(jiǎng)丨米爾 瑞芯微RK3576開發(fā)板免費(fèi)試用
米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了7塊價(jià)值849元的MYD-LR3576

評(píng)論