国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品
電子工程網(wǎng)
標(biāo)題:
CortexM0菜鳥之IO配置(第7天作業(yè))
[打印本頁(yè)]
作者:
hotpower
時(shí)間:
2010-9-6 23:56
標(biāo)題:
CortexM0菜鳥之IO配置(第7天作業(yè))
在菜農(nóng)決定做CortexM0菜鳥之瞬間就感覺最簡(jiǎn)單和最難做的就是復(fù)用IO的配置問題。
在5年前成功挑戰(zhàn)NXP的ARM7頭文件后,感覺M0應(yīng)該更上一層樓,特別是見到NXP的LPC11XX.H后。
在弟子的唆使下,菜農(nóng)開始了LPC11XXcfg.h的構(gòu)造,第一個(gè)理念就是打造GPIO尿童系列。
近來在網(wǎng)上看到很多有關(guān)GPIO的求助,也看了NXP的例程,感覺應(yīng)該專題一番。
在LPC11XXcfg.h下,GPIO的配置實(shí)際就是“三板斧”:
//KEY1宏定義三板斧
#define PioKey1 PIO2_6 //P2.6
#define PortKey1 P2 //P2
#define PinKey1 Pin6 //Px.6
//KEY2宏定義三板斧
#define PioKey2 PIO2_0 //P2.0
#define PortKey2 P2 //P2
#define PinKey2 Pin0 //Px.0
//LED1宏定義三板斧
#define PioLed1 PIO1_8 //P1.8
#define PortLed1 P1 //P1
#define PinLed1 Pin8 //Px.8
//LED2宏定義三板斧
#define PioLed2 PIO0_2 //P0.2
#define PortLed2 P0 //P0
#define PinLed2 Pin2 //Px.2
//LED3宏定義三板斧
#define PioLed3 PIO2_7 //P2.7
#define PortLed3 P2 //P2
#define PinLed3 Pin7 //Px.7
//LED4宏定義三板斧
#define PioLed4 PIO2_8 //P2.8
#define PortLed4 P2 //P2
#define PinLed4 Pin8 //Px.8
//LED5宏定義三板斧
#define PioLed5 PIO2_1 //P2.1
#define PortLed5 P2 //P2
#define PinLed5 Pin1 //Px.1
//LED6宏定義三板斧
#define PioLed6 PIO1_9 //P1.9
#define PortLed6 P1 //P1
#define PinLed6 Pin9 //Px.9
//LED7宏定義三板斧
#define PioLed7 PIO3_4 //P3.4
#define PortLed7 P3 //P3
#define PinLed7 Pin4 //Px.4
//LED8宏定義三板斧
#define PioLed8 PIO3_5 //P3.5
#define PortLed8 P3 //P3
#define PinLed8 Pin5 //Px.5
//BEEP宏定義三板斧
#define PioBeep PIO0_8 //P0.8
#define PortBeep P0 //P0
#define PinBeep Pin8 //Px.8
SYSCON.SYSAHBCLKCTRL.Bits.GPIOCLK = 1;//使能GPIO的時(shí)鐘
//BeepInit
IOCON.PioBeep.Bits.FUNC = IOCON_PIO;//選擇PIO0.8為BEEP
IOCON.PioBeep.Bits.MODE = IOCON_INACTIVE;//高阻
PortBeep.DIR.Bits.PinBeep = 1;//設(shè)置輸出方式
PortBeep.DATA.Bits.PinBeep = 0;//蜂鳴器不響
//Key1Init
IOCON.PioKey1.Bits.FUNC = IOCON_PIO;//選擇P2.6為KEY1
IOCON.PioKey1.Bits.MODE = IOCON_PULLUP;//上拉電阻
PortKey1.DIR.Bits.PinKey1 = 0;//設(shè)置輸輸入方式
PortKey1.DATA.Bits.PinKey1 = 1;//釋放鍵盤
//Key2Init
IOCON.PioKey2.Bits.FUNC = IOCON_PIO;//選擇P2.0為KEY2
IOCON.PioKey2.Bits.MODE = IOCON_PULLUP;//上拉電阻
PortKey2.DIR.Bits.PinKey2 = 0;//設(shè)置輸輸入方式
PortKey2.DATA.Bits.PinKey2 = 1;//釋放鍵盤
//Led1Init
IOCON.PioLed1.Bits.FUNC = IOCON_PIO;//選擇PIO1.8為L(zhǎng)ED1
IOCON.PioLed1.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed1.DIR.Bits.PinLed1 = 1;//設(shè)置輸出方式
PortLed1.DATA.Bits.PinLed1 = 1;//LED1滅
//Led2Init
IOCON.PioLed2.Bits.FUNC = IOCON_PIO;//選擇PIO0.2為L(zhǎng)ED2
IOCON.PioLed2.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed2.DIR.Bits.PinLed2 = 1;//設(shè)置輸出方式
PortLed2.DATA.Bits.PinLed2 = 0;//LED2亮
//Led3Init
IOCON.PioLed3.Bits.FUNC = IOCON_PIO;//選擇PIO2.7為L(zhǎng)ED3
IOCON.PioLed3.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed3.DIR.Bits.PinLed3 = 1;//設(shè)置輸出方式
PortLed3.DATA.Bits.PinLed3 = 1;//LED3滅
//Led4Init
IOCON.PioLed4.Bits.FUNC = IOCON_PIO;//選擇PIO2.8為L(zhǎng)ED4
IOCON.PioLed4.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed4.DIR.Bits.PinLed4 = 1;//設(shè)置輸出方式
PortLed4.DATA.Bits.PinLed4 = 0;//LED4亮
//Led5Init
IOCON.PioLed5.Bits.FUNC = IOCON_PIO;//選擇P2.1為L(zhǎng)ED5
IOCON.PioLed5.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed5.DIR.Bits.PinLed5 = 1;//設(shè)置輸出方式
PortLed5.DATA.Bits.PinLed5 = 1;//LED5滅
//Led6Init
IOCON.PioLed6.Bits.FUNC = IOCON_PIO;//選擇P1.9為L(zhǎng)ED6
IOCON.PioLed6.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed6.DIR.Bits.PinLed6 = 1;//設(shè)置輸出方式
PortLed6.DATA.Bits.PinLed6 = 0;//LED6亮
//Led7Init
IOCON.PioLed7.Bits.FUNC = IOCON_PIO;//選擇P3.4為L(zhǎng)ED7
IOCON.PioLed7.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed7.DIR.Bits.PinLed7 = 1;//設(shè)置輸出方式
PortLed7.DATA.Bits.PinLed7 = 1;//LED7滅
//Led8Init
IOCON.PioLed8.Bits.FUNC = IOCON_PIO;//選擇P3.5為L(zhǎng)ED8
IOCON.PioLed8.Bits.MODE = IOCON_INACTIVE;//高阻
PortLed8.DIR.Bits.PinLed8 = 1;//設(shè)置輸出方式
PortLed8.DATA.Bits.PinLed8 = 0;//LED8亮
不多說了,代碼很明白。
再舉Uart和I2C
//位域?qū)懛?br /> IOCON.TXD.Bits.FUNC = IOCON_TXD;
IOCON.TXD.Bits.MODE = IOCON_PULLUP;
//寄存器寫法
// IOCON.TXD.Regs = (IOCON_TXD << IOCON_FUNC)
// | (IOCON_PULLUP << IOCON_MODE);
//位域?qū)懛?br /> IOCON.RXD.Bits.FUNC = IOCON_RXD;
IOCON.RXD.Bits.MODE = IOCON_PULLUP;
//寄存器寫法
// IOCON.RXD.Regs = (IOCON_RXD << IOCON_FUNC)
// | (IOCON_PULLUP << IOCON_MODE);
SYSCON.SYSAHBCLKCTRL.Bits.UARTCLK = 1;//使能UART的時(shí)鐘
SYSCON.UARTCLKDIV.Regs = 1;//UART時(shí)鐘分頻器值
SYSCON.PRESETCTRL.Bits.I2C0_RST_N = 1;//復(fù)位I2C,否則死機(jī)
SYSCON.SYSAHBCLKCTRL.Bits.I2CCLK = 1;
//位域?qū)懛?br /> IOCON.PIO0_4.Bits.FUNC = IOCON_SCL;//選擇PIO0.4為I2C_SCL
IOCON.PIO0_4.Bits.I2CMODE = IOCON_SCL_I2CMODE;//選擇PIO0.4為I2C_SCL
IOCON.PIO0_5.Bits.FUNC = IOCON_SDA;//選擇PIO0.5為I2C_SCL
IOCON.PIO0_5.Bits.I2CMODE = IOCON_SDA_I2CMODE;//選擇PIO0.5為I2C_SDA
//寄存器寫法
/*
IOCON.PIO0_4.Regs = (IOCON_SCL << IOCON_FUNC)
| (IOCON_SCL_I2CMODE << IOCON_I2CMODE);
IOCON.PIO0_5.Regs = (IOCON_SDA << IOCON_FUNC)
| (IOCON_SDA_I2CMODE << IOCON_I2CMODE);
*/
HotPower@163.com
2010.9.6 23:28 于雁塔菜地
菜農(nóng)通訊工具:
新浪網(wǎng)頁(yè)版:
http://t.sina.com.cn/hotpower
新浪手機(jī)版:
http://t.sina.cn/hotpower
網(wǎng) 易微 博:
http://t.163.com/hotpower
騰訊QQ: 1270688699
菜農(nóng)郵箱:
HotPower@163.com
菜農(nóng)導(dǎo)航:
http://www.hotpage.net.cn/
歡迎光臨 電子工程網(wǎng) (http://m.qingdxww.cn/)
Powered by Discuz! X3.4
主站蜘蛛池模板:
91香蕉国产线观看免
|
亚洲永久免费网站
|
日本免费一区二区三区中文字幕
|
日本高清在线中文字幕网
|
国产女人18毛片水
|
国产手机在线
|
三级欧美在线
|
99re视频精品全部免费
|
丝瓜草莓视频在线观看
|
手机看片国产在线
|
久久激情网
|
五月sese
|
免费视频 久久久
|
中文国产成人精品久久久
|
看全色黄一级毛片
|
四虎影5151毛片在线看
|
男女爱爱视频免费看
|
国产精品视频免费观看调教网
|
日韩手机视频
|
黄a在线
|
91视频最新网址
|
成年男女的免费视频网站
|
欧美黄免在线播放
|
啦啦啦www视频高清在线观看
|
国产一级在线播放
|
992tv国产精品福利在线
|
狠狠干狠狠插
|
欧美区在线播放
|
国产精品一区三区
|
俺也来国产精品欧美在线观看
|
国产人成在线视频
|
美国大片免费看在线观看
|
成人看片黄a在线观看
|
日韩欧美一区二区三区免费看
|
天美传谋和果冻传媒最漂亮
|
在线岛国片
|
99热这里只有精品1 99热这里只有精
|
国产精品免费视频网站
|
色花堂的网站永久地址
|
91在线免费视频观看
|
国产精品欧美一区二区在线看
|