精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于N32G45的按鍵驅動

wang123a ? 來源:wang123a ? 作者:wang123a ? 2022-12-04 10:44 ? 次閱讀

1.N32G45簡介

N32G45系列集成了最新一代嵌入式ARM Cortex?-M4F處理器,在Cortex?-M3內核的基礎上強化了運算能力、新增加了浮點運算處理單元(FPU)、DSP和并行計算指令,提供1.25DMIPS/MHz的優異性能。

同時其高效的信號處理能力與Cortex-M系列處理器的低功耗,低成本和易于使用的優點組合,用以滿足需要控制和信號處理混合能力且易于使用的應用場景。

ARM Cortex?-M4F 32位精簡指令集處理器具有優異的代碼效率,通常采用8位和16位器件的存儲器空間即可發揮ARM內核的高性能。

2.N32外設功能

高達 512KByte 片內 Flash,支持加密存儲、多用戶分區管理及數據保護,支持硬件 ECC 校驗,10萬次擦寫次數,10 年數據保持。

144KByte 片內 SRAM(包含 16KByte Retention RAM),Retention RAM 支持硬件奇偶校驗。

通訊接口 ??

― 7 個 U(S)ART 接口, 最高速率達 4.5 Mbps,其中 3 個 USART 接口(支持 1xISO7816,1xIrDA, LIN),4 個 UART 接口

?? ― 3 個 SPI 接口,速度高達 36 MHz,其中 2 個支持 I2S

?? ― 1 個 QSPI 接口,速率高達 144 Mbps

?? ― 4 個 I2C 接口,速率高達 1 MHz,主從模式可配,從機模式下支持雙地址響應

?? ― 1 個 USB2.0 Full speed Device 接口

?? ― 2 個 CAN 2.0A/B 總線接口

?? ― 1 個 SDIO 接口,支持 SD/MMC 格式

ADC模擬接口

?? ――2 個 12bit 5Msps 高速 ADC,多種精度可配置,6bit 模式下采樣率高達 9Msps,多達 18 路外部單端輸入通道,支持差分模式

?? ――2 個 12bit DAC,采樣率 1Msps

?? ――支持外部輸入獨立參考電壓源

?? ――所有模擬接口支持 1.8~3.6V 全電壓工作

最大支持 97 個支持復用功能的 GPIOs,大多數 GPIO 支持 5V 耐壓.

2個高速 DMA 控制器,每個控制器支持 8 通道,通道源地址及目的地址任意可配

RTC 實時時鐘,支持閏年萬年歷,鬧鐘事件,周期性喚醒,支持內外部時鐘校準

定時計數器

?? ――2 個 16bit 高級定時計數器,支持輸入捕獲、輸出比較、PWM 輸出以及正交編碼輸入等功能,最高控制精度 6.9nS。每個定時有 4 個獨立的通道,其中 3 個通道支持 6 路互補 PWM 輸出

?? ――4 個 16bit 通用定時計數器, 每個定時器有 4 個獨立通道,支持輸入捕獲/輸出比較/PWM 輸出

?? ――2 個 16bit 基礎定時計數器

?? ――1x 24bit SysTick

?? ――1x 7bit 窗口看門狗(WWDG)

?? ――1x 12bit 獨立看門狗( IWDG)

poYBAGOLAVeAaSXjAAHoHrxPfOQ149.png#pic_center

3.基于N32G457VEL7開發板介紹

N32G45XVL-STB 開發板用于國民技術股份有限公司高性能 32 位 N32G45XVL 系列芯片的樣片開發?;贏RM架構的Cortex-M4F內核,時鐘頻率為144MHZ,存儲空間flash大小為512KB,運行空間Sram大小為144KB。

支持串口下載,Jlink下載仿真、USB下載以及CMSIS-DAP下載仿真。板子本身自帶CMSIS-DAP接口電路。

poYBAGOLAxOAXp4SAA0Ah_8_fng056.png#pic_center

開發板原理圖如下

poYBAGOLA6GAYKqcAAMtZEjN65c245.png#pic_center

3.基于N32G45的按鍵操作

關于N32G45的工程創建可查看帖子: https://bbs.elecfans.com/jishu_2320004_1_1.html

1.要實現按鍵驅動可分為三個步驟:1.開時鐘;2配置GPIO口;3.上下拉。

接下來,我們先看下按鍵的硬件接口,原理圖如下:

pYYBAGOL7ZCAWCBtAABzZL-XCdY364.png

根據原理圖可知,按鍵的硬件接口為:

S1 ---PA4 S2 ---PA5 S3 ---PA6

有了硬件接口,我們即可按照3步操作即可。

開時鐘

要開啟時鐘,我們可以先看下N32G45的系統構架,系統構架框圖如下:

poYBAGOLSduAMEn_AAF6qh2dl0U833.png#pic_center

根據系統構架框圖可以看出,整個內核結構分為三條總線:AHB、APB2、APB1。其中AHB總線時鐘頻率為144MHZ,APB2上時鐘總線為72MHZ、APB1上時鐘總線為36MHZ。

根據按鍵原理圖,我們只需要開啟PA時鐘即可

poYBAGOL7qWAWHMIAADEm4YffRo686.png

/*1.開時鐘*/
RCC->APB2PCLKEN|=1<<2;//PA

配置GPIO口

對應GPIO端口配置,我們需要參考用戶手冊的第7章節。

GPIO( General purpose input/output) 即通用型 I/O, AFIO( Alternate-function input/output) 即復用功能 I/O。芯片最多支持 97 個 GPIO,共被分為 7 組(GPIOA/GPIOB/GPIOC/GPIOD/GPIOE/GPIOF/GPIOG),每組 16個端口( F 組共 10 個, G 組共 7 個)。 GPIO 端口和其他的復用外設共用引腳,用戶可以根據需求靈活配置。

每個 GPIO 引腳都可以獨立配置成輸出、輸入或復用的外設功能端口。除了模擬功能引腳外,其他的 GPIO引腳都有大電流通過能力。

GPIO 端口可由軟件分別配置成以下模式:

???■ 輸入浮空
???■ 輸入上拉
???■ 輸入下拉
???■ 模擬功能
???■ 開漏輸出
???■ 推挽輸出
???■ 推挽復用功能
???■ 開漏復用功能

對應按鍵,我們需要配置的模式為推挽輸出。

端口模式配置寄存器

poYBAGOLTa2AU2mBAAK2VOXqGa4600.png#pic_center

按鍵GPIO口配置如下:

  /*配置GPIO口*/
  GPIOA->PL_CFG&=0xF000FFFF;
  GPIOA->PL_CFG|=0x08880000;//上拉/下拉輸入模式

注意:由于按鍵是做檢測,判斷按鍵是否按下,所以按鍵模式配置需要設置為輸入模式。

上下拉

上下拉操作,即設置初始化的電平狀態??赏ㄟ^GPIO_POD或者GPIO_PBSC實現。

根據按鍵硬件原理圖,按鍵按下為低電平,要想正常檢測到按鍵是否按下,則需要產生一個由高電平到低電平的跳變過程,因此按鍵需要設置為上拉模式。

pYYBAGOLT3aASzz6AAEJCcS1esw841.png#pic_center

  GPIOA->POD|=0x7<<4;//上拉,將PA4~PA6設置為高電平

3.2 按鍵檢測

為方便后續按鍵使用,我們可以單獨封裝一個按鍵檢測函數,通過返回值確定哪個按鍵按下。

/***************檢測按鍵函數*************
**硬件接口:KEY1 --PA0 按下為高電平
**					KEY2 --PA1 按下為低電平
**					KEY3 --PA4按下為低電平
**					KEY4 --PA5按下為低電平
**返回值:KEY1按下 --返回1
**				KEY2按下 --返回2
**				KEY3按下 --返回3
**				KEY4按下 --返回4
**沒有按鍵按下:返回0
**注:該函數一次只能檢測一個按鍵是否按下
**作者:IT_阿水
******************************************/
u8  Key_Scan(void)
{
	static u8 stat=0;//按鍵按下標志位
	if((!KEY1 || !KEY2 || !KEY3) && (stat==0))//是否有按鍵按下
	{
		Delay_Ms(20);//延時消抖
		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;//沒有按鍵按下
}

注意,上面函數中KEY1、KEY2、KEY3均是通過位帶方式實現,具體寫法查看帖子:https://bbs.elecfans.com/jishu_2320004_1_1.html

3.3 按鍵控制LED

通過任意一個按鍵,實現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;
    }

  }    
}

實現效果如下:

按下按鍵所有的LED點亮,再按一次按鍵所有的LED熄滅。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式技術
    +關注

    關注

    10

    文章

    360

    瀏覽量

    35666
  • 按鍵驅動
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7126
  • n32g455
    +關注

    關注

    0

    文章

    7

    瀏覽量

    917
收藏 人收藏

    評論

    相關推薦

    基于N32G45的OLED驅動

    ? SPI是串行外設接口(Serial Peripheral Interface)的縮寫,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,提供方便,正是出于這種簡單易用的特性,越來越多的芯片集成了這種通信協議。 SPI:高速同步串行口。是一種標準的四線同步雙向串行總線,是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。
    的頭像 發表于 12-07 11:52 ?2504次閱讀
    基于<b class='flag-5'>N32G45</b>的OLED<b class='flag-5'>驅動</b>

    N32G45x/G4FRx/N32WBx系列觸控設計指南

    本應用筆記主要針對 N32G45x/G4FRx/N32WBx 系列 MCU 在智能門鎖、智能家居等觸控產品上提供完整的觸控解決方案及典型觸控應用的詳細說明,為開發者提供技術支持。
    發表于 11-02 06:12

    國民技術N32G45環境搭建及點燈測試

    實現LED驅動可分為三個步驟:1.開時鐘;2配置GPIO口;3.上下拉。開時鐘??要開啟時鐘,我們可以先看下N32G45的系統構架,系統構架框圖如下:??根據系統構架框圖可以看出,整個內核結構分為三條
    發表于 12-03 16:34

    【精品合集】國民技術N32開源移植挑戰賽作品合集

    345XVL-STB項目移植 —開箱+資料【國民技術N32項目移植】MacOS開發N32G45 1、創建開發環境【國民技術N32項目移植】RT-THread 移植 LED閃燈【國民技術N
    發表于 01-10 13:59

    【國民技術N32項目移植】MacOS開發N32G45 1、創建開發環境

    457/Nationstech.N32G45x_DFP.1.0.5.pack ./build/output.bin0000839 I Loading /Users/liujianhua/Downloads
    發表于 01-26 09:15

    【國民技術N32項目移植】項目提交-物聯網心率監控設備

    使用中斷,減輕復雜性,本項目采用了開發板的KEY1和KEY2這兩個按鍵。IIC應用開源項目RA6M4使用了軟件IIC,而N32G45使用了硬件IIC。加快OLED刷新率,顯示波形圖不會卡頓。LED驅動開源
    發表于 02-12 16:41

    【國民技術N32項目移植】5.項目提交-天氣顯示及預報系統介紹以及演示

    技術N32G45芯片微處理器,運行RT-Thread操作系統,實現包括系統外設初始化、網絡接入、系統管理、數據獲取、數據顯示等功能。平臺層和應用層功能則由服務器和開發板以及顯示屏協同實現。系統整體框圖
    發表于 02-22 19:53

    N32G45的工程項目如何添加AT組件?

    目前使用的是N32G45的工程項目,需要添加AT組件,然后我根據文檔發現沒有AT的代碼,從rtthread studio新建的項目中把AT文件夾復制過來,在其中使用ENV工具配置,手動將程序全都放進工程中新建的文件夾,編譯的時候發現沒有,下載了at_device軟件版之后不知道怎么配置了。
    發表于 09-07 16:52

    N32G45x&N32G4FR&N32WB452系列芯片串口IAP升級應用筆記

    AN_N32G45xamp;N32G4FRamp;N32WB452系列芯片串口IAP升級應用筆記
    發表于 11-07 15:03 ?10次下載

    N32G45x_N32G4FR_N32WB452_GCC開發環境應用筆記

    AN_N32G45x_N32G4FR_N32WB452_GCC開發環境應用筆記_V1
    發表于 11-07 15:05 ?17次下載

    國民技術N32G45XVL-STB開發版資料

    國民技術N32G45XVL-STB開發版資料,本資料包含原理圖源文件、PCB源文件以及N32G45XVL-STB開發板硬件使用手冊
    發表于 11-07 15:23 ?0次下載

    N32G45x系列用戶手冊

    N32G45x系列用戶手冊
    發表于 11-10 19:50 ?2次下載
    <b class='flag-5'>N32G45</b>x系列用戶手冊

    N32G45x系列用戶手冊

    N32G45x系列用戶手冊
    發表于 11-10 19:50 ?0次下載
    <b class='flag-5'>N32G45</b>x系列用戶手冊

    N32G45x系列用戶手冊

    N32G45x系列用戶手冊
    發表于 11-10 19:50 ?0次下載
    <b class='flag-5'>N32G45</b>x系列用戶手冊

    國民技術N32G45X&N32G4FR系列硬件設計指南V1

    國民技術UG_N32G45X&N32G4FR系列硬件設計指南V1
    發表于 10-18 16:12 ?0次下載