1.N32G45簡(jiǎn)介
N32G45系列集成了最新一代嵌入式ARM Cortex?-M4F處理器,在Cortex?-M3內(nèi)核的基礎(chǔ)上強(qiáng)化了運(yùn)算能力、新增加了浮點(diǎn)運(yùn)算處理單元(FPU)、DSP和并行計(jì)算指令,提供1.25DMIPS/MHz的優(yōu)異性能。
同時(shí)其高效的信號(hào)處理能力與Cortex-M系列處理器的低功耗,低成本和易于使用的優(yōu)點(diǎn)組合,用以滿足需要控制和信號(hào)處理混合能力且易于使用的應(yīng)用場(chǎng)景。
ARM Cortex?-M4F 32位精簡(jiǎn)指令集處理器具有優(yōu)異的代碼效率,通常采用8位和16位器件的存儲(chǔ)器空間即可發(fā)揮ARM內(nèi)核的高性能。
2.N32外設(shè)功能
高達(dá) 512KByte 片內(nèi) Flash,支持加密存儲(chǔ)、多用戶分區(qū)管理及數(shù)據(jù)保護(hù),支持硬件 ECC 校驗(yàn),10萬(wàn)次擦寫次數(shù),10 年數(shù)據(jù)保持。
144KByte 片內(nèi) SRAM(包含 16KByte Retention RAM),Retention RAM 支持硬件奇偶校驗(yàn)。
通訊接口 ??
― 7 個(gè) U(S)ART 接口, 最高速率達(dá) 4.5 Mbps,其中 3 個(gè) USART 接口(支持 1xISO7816,1xIrDA, LIN),4 個(gè) UART 接口
?? ― 3 個(gè) SPI 接口,速度高達(dá) 36 MHz,其中 2 個(gè)支持 I2S
?? ― 1 個(gè) QSPI 接口,速率高達(dá) 144 Mbps
?? ― 4 個(gè) I2C 接口,速率高達(dá) 1 MHz,主從模式可配,從機(jī)模式下支持雙地址響應(yīng)
?? ― 1 個(gè) USB2.0 Full speed Device 接口
?? ― 2 個(gè) CAN 2.0A/B 總線接口
?? ― 1 個(gè) SDIO 接口,支持 SD/MMC 格式
?? ――2 個(gè) 12bit 5Msps 高速 ADC,多種精度可配置,6bit 模式下采樣率高達(dá) 9Msps,多達(dá) 18 路外部單端輸入通道,支持差分模式
?? ――2 個(gè) 12bit DAC,采樣率 1Msps
?? ――支持外部輸入獨(dú)立參考電壓源
?? ――所有模擬接口支持 1.8~3.6V 全電壓工作
最大支持 97 個(gè)支持復(fù)用功能的 GPIOs,大多數(shù) GPIO 支持 5V 耐壓.
2個(gè)高速 DMA 控制器,每個(gè)控制器支持 8 通道,通道源地址及目的地址任意可配
RTC 實(shí)時(shí)時(shí)鐘,支持閏年萬(wàn)年歷,鬧鐘事件,周期性喚醒,支持內(nèi)外部時(shí)鐘校準(zhǔn)
定時(shí)計(jì)數(shù)器
?? ――2 個(gè) 16bit 高級(jí)定時(shí)計(jì)數(shù)器,支持輸入捕獲、輸出比較、PWM 輸出以及正交編碼輸入等功能,最高控制精度 6.9nS。每個(gè)定時(shí)有 4 個(gè)獨(dú)立的通道,其中 3 個(gè)通道支持 6 路互補(bǔ) PWM 輸出
?? ――4 個(gè) 16bit 通用定時(shí)計(jì)數(shù)器, 每個(gè)定時(shí)器有 4 個(gè)獨(dú)立通道,支持輸入捕獲/輸出比較/PWM 輸出
?? ――2 個(gè) 16bit 基礎(chǔ)定時(shí)計(jì)數(shù)器
?? ――1x 24bit SysTick
?? ――1x 7bit 窗口看門狗(WWDG)
?? ――1x 12bit 獨(dú)立看門狗( IWDG)
3.基于N32G457VEL7開發(fā)板介紹
N32G45XVL-STB 開發(fā)板用于國(guó)民技術(shù)股份有限公司高性能 32 位 N32G45XVL 系列芯片的樣片開發(fā)。基于ARM架構(gòu)的Cortex-M4F內(nèi)核,時(shí)鐘頻率為144MHZ,存儲(chǔ)空間flash大小為512KB,運(yùn)行空間Sram大小為144KB。
支持串口下載,Jlink下載仿真、USB下載以及CMSIS-DAP下載仿真。板子本身自帶CMSIS-DAP接口電路。
開發(fā)板原理圖如下
3.基于N32G45的按鍵操作
關(guān)于N32G45的工程創(chuàng)建可查看帖子: https://bbs.elecfans.com/jishu_2320004_1_1.html
1.要實(shí)現(xiàn)按鍵驅(qū)動(dòng)可分為三個(gè)步驟:1.開時(shí)鐘;2配置GPIO口;3.上下拉。
接下來(lái),我們先看下按鍵的硬件接口,原理圖如下:
根據(jù)原理圖可知,按鍵的硬件接口為:
S1 ---PA4 S2 ---PA5 S3 ---PA6
有了硬件接口,我們即可按照3步操作即可。
開時(shí)鐘
要開啟時(shí)鐘,我們可以先看下N32G45的系統(tǒng)構(gòu)架,系統(tǒng)構(gòu)架框圖如下:
根據(jù)系統(tǒng)構(gòu)架框圖可以看出,整個(gè)內(nèi)核結(jié)構(gòu)分為三條總線:AHB、APB2、APB1。其中AHB總線時(shí)鐘頻率為144MHZ,APB2上時(shí)鐘總線為72MHZ、APB1上時(shí)鐘總線為36MHZ。
根據(jù)按鍵原理圖,我們只需要開啟PA時(shí)鐘即可
/*1.開時(shí)鐘*/ RCC->APB2PCLKEN|=1<<2;//PA
配置GPIO口
對(duì)應(yīng)GPIO端口配置,我們需要參考用戶手冊(cè)的第7章節(jié)。
GPIO( General purpose input/output) 即通用型 I/O, AFIO( Alternate-function input/output) 即復(fù)用功能 I/O。芯片最多支持 97 個(gè) GPIO,共被分為 7 組(GPIOA/GPIOB/GPIOC/GPIOD/GPIOE/GPIOF/GPIOG),每組 16個(gè)端口( F 組共 10 個(gè), G 組共 7 個(gè))。 GPIO 端口和其他的復(fù)用外設(shè)共用引腳,用戶可以根據(jù)需求靈活配置。
每個(gè) GPIO 引腳都可以獨(dú)立配置成輸出、輸入或復(fù)用的外設(shè)功能端口。除了模擬功能引腳外,其他的 GPIO引腳都有大電流通過(guò)能力。
GPIO 端口可由軟件分別配置成以下模式:
???■ 輸入浮空
???■ 輸入上拉
???■ 輸入下拉
???■ 模擬功能
???■ 開漏輸出
???■ 推挽輸出
???■ 推挽復(fù)用功能
???■ 開漏復(fù)用功能
對(duì)應(yīng)按鍵,我們需要配置的模式為推挽輸出。
端口模式配置寄存器:
按鍵GPIO口配置如下:
/*配置GPIO口*/ GPIOA->PL_CFG&=0xF000FFFF; GPIOA->PL_CFG|=0x08880000;//上拉/下拉輸入模式
注意:由于按鍵是做檢測(cè),判斷按鍵是否按下,所以按鍵模式配置需要設(shè)置為輸入模式。
上下拉
上下拉操作,即設(shè)置初始化的電平狀態(tài)。可通過(guò)GPIO_POD或者GPIO_PBSC實(shí)現(xiàn)。
根據(jù)按鍵硬件原理圖,按鍵按下為低電平,要想正常檢測(cè)到按鍵是否按下,則需要產(chǎn)生一個(gè)由高電平到低電平的跳變過(guò)程,因此按鍵需要設(shè)置為上拉模式。
GPIOA->POD|=0x7<<4;//上拉,將PA4~PA6設(shè)置為高電平
3.2 按鍵檢測(cè)
為方便后續(xù)按鍵使用,我們可以單獨(dú)封裝一個(gè)按鍵檢測(cè)函數(shù),通過(guò)返回值確定哪個(gè)按鍵按下。
/***************檢測(cè)按鍵函數(shù)************* **硬件接口:KEY1 --PA0 按下為高電平 ** KEY2 --PA1 按下為低電平 ** KEY3 --PA4按下為低電平 ** KEY4 --PA5按下為低電平 **返回值:KEY1按下 --返回1 ** KEY2按下 --返回2 ** KEY3按下 --返回3 ** KEY4按下 --返回4 **沒有按鍵按下:返回0 **注:該函數(shù)一次只能檢測(cè)一個(gè)按鍵是否按下 **作者:IT_阿水 ******************************************/ u8 Key_Scan(void) { static u8 stat=0;//按鍵按下標(biāo)志位 if((!KEY1 || !KEY2 || !KEY3) && (stat==0))//是否有按鍵按下 { Delay_Ms(20);//延時(shí)消抖 stat=1;//表示有按鍵按下 if(KEY1==0)return 1; else if(KEY2==0)return 2; else if(KEY3==0)return 3; } else { if(KEY1 && KEY2 && KEY3 )stat=0;//是否所有按鍵都松開 } return 0;//沒有按鍵按下 }
注意,上面函數(shù)中KEY1、KEY2、KEY3均是通過(guò)位帶方式實(shí)現(xiàn),具體寫法查看帖子:https://bbs.elecfans.com/jishu_2320004_1_1.html
3.3 按鍵控制LED燈
通過(guò)任意一個(gè)按鍵,實(shí)現(xiàn)LED的亮滅。
#include "n32g45x.h" #include "led.h" #include "key.h" #include "delay.h" int main() { u8 key_val; LED_Init(); KEY_Init(); while(1) { key_val=Key_Scan(); if(key_val) { LED_D1=!LED_D1; LED_D2=!LED_D2; LED_D3=!LED_D3; } } }
實(shí)現(xiàn)效果如下:
按下按鍵所有的LED點(diǎn)亮,再按一次按鍵所有的LED熄滅。
審核編輯:劉清
-
嵌入式技術(shù)
+關(guān)注
關(guān)注
10文章
364瀏覽量
40512 -
按鍵驅(qū)動(dòng)
+關(guān)注
關(guān)注
0文章
11瀏覽量
7208 -
n32g455
+關(guān)注
關(guān)注
0文章
8瀏覽量
1084
發(fā)布評(píng)論請(qǐng)先 登錄
基于N32G45的OLED驅(qū)動(dòng)

N32G45x/G4FRx/N32WBx系列觸控設(shè)計(jì)指南
國(guó)民技術(shù)N32G45環(huán)境搭建及點(diǎn)燈測(cè)試
【精品合集】國(guó)民技術(shù)N32開源移植挑戰(zhàn)賽作品合集
【國(guó)民技術(shù)N32項(xiàng)目移植】MacOS開發(fā)N32G45 1、創(chuàng)建開發(fā)環(huán)境
【國(guó)民技術(shù)N32項(xiàng)目移植】項(xiàng)目提交-物聯(lián)網(wǎng)心率監(jiān)控設(shè)備
【國(guó)民技術(shù)N32項(xiàng)目移植】5.項(xiàng)目提交-天氣顯示及預(yù)報(bào)系統(tǒng)介紹以及演示
N32G45的工程項(xiàng)目如何添加AT組件?
N32G45x_N32G4FR_N32WB452_GCC開發(fā)環(huán)境應(yīng)用筆記
國(guó)民技術(shù)N32G45XVL-STB開發(fā)版資料
國(guó)民技術(shù)N32G45X&N32G4FR系列硬件設(shè)計(jì)指南V1
DA45-220T051515G9N3 DA45-220T051515G9N3

評(píng)論