国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

GD32 MCU機(jī)械按鍵狀態(tài)的識(shí)別

發(fā)布者:輕松自在最新更新時(shí)間:2024-11-05 來(lái)源: elecfans關(guān)鍵字:GD32  MCU  識(shí)別 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

GPIO口的輸入功能-機(jī)械按鍵狀態(tài)的識(shí)別

硬件: 深圳標(biāo)航科技有限公司 暴風(fēng) 開(kāi)發(fā)板


處理器:GD32F103VET6

開(kāi)發(fā)環(huán)境:MDK(keil 5) + STM32CubeMX

1.1 GPIO口的輸入的作用

輸入,其意是指將處理器外部的邏輯信號(hào)0或者1輸入到處理器的內(nèi)部。輸入是每一個(gè)處理器的IO引腳的基本功能。利用處理器的輸入功能我們可以獲取外部電路的狀態(tài),進(jìn)而做出進(jìn)一步的判斷。GPIO的輸入功能的典型應(yīng)用是獲取機(jī)械按鍵的狀態(tài)—判斷按鍵是按下還是彈起。

1.2 機(jī)械按鍵狀態(tài)的識(shí)別

1.2.1 機(jī)械按鍵電路的設(shè)計(jì)

按鍵有兩個(gè)狀態(tài),一個(gè)是按下一個(gè)是彈起。通過(guò)巧妙的電路設(shè)計(jì),會(huì)使得按鍵的按下與彈起時(shí)IO引腳的邏輯電平不一樣。通過(guò)GPIO引腳的輸入功能將這些邏輯電平輸入到內(nèi)部供處理器識(shí)別,由此可知按鍵是按下還是彈起,并做出進(jìn)一步的判斷。

下面我們先來(lái)討論按鍵電路的設(shè)計(jì)。常用的按鍵電路設(shè)計(jì)如圖1的(a)和(b)所示。

圖片

(a)

圖片

(b)

圖1 按鍵電路設(shè)計(jì)

先來(lái)看圖1的(a)圖,在(a)圖中,按鍵的一端接地,另一端接IO引腳,接IO引腳這一端通過(guò)一個(gè)電阻連接到高電平VCC(這種電阻叫上拉電阻)。在沒(méi)有按鍵按下時(shí),由于處理器吸取的電流非常非常小,R1兩端可以認(rèn)為沒(méi)有電流流動(dòng),所以它們兩邊電位一樣,也即IO引腳的電平跟VCC基本一樣,此時(shí)IO引腳端為高電平。當(dāng)按鍵按下后,IO引腳和地端相連,IO引腳直接變?yōu)榱说碗娖?。通過(guò)這個(gè)分析,我們得出圖1(a)按鍵電路的特點(diǎn)如下:

(1)沒(méi)有按鍵按下,IO引腳為高電平;

(2)有按鍵按下,IO引腳為低電平。

所以,如果處理器某個(gè)時(shí)候讀到這個(gè)引腳信號(hào)為0,說(shuō)明此時(shí)按鍵按下了,如果讀到為1,說(shuō)明按鍵沒(méi)有按下。

再來(lái)看圖1的(b)圖,圖1(b)中,按鍵一端接高電平,另一端接IO引腳,其中接IO引腳這一端通過(guò)一個(gè)電阻接到地(這種電阻叫下拉電阻)。圖1(b)按鍵電路的特點(diǎn)如下:

(1)沒(méi)有按鍵按下時(shí),IO引腳為低電平;

(2)有按鍵按下時(shí),IO引腳為高電平。

所以,如果處理器某個(gè)時(shí)候讀到這個(gè)引腳信號(hào)為1,說(shuō)明此時(shí)按鍵按下了,如果讀到為0,說(shuō)明按鍵沒(méi)有按下。

暴風(fēng)開(kāi)發(fā)板的按鍵電路如圖2所示,可以看到,在標(biāo)航的暴風(fēng)開(kāi)發(fā)板中特意將兩個(gè)按鍵分別按圖1的(a)和(b)來(lái)連接,以便讀者學(xué)習(xí)這兩種按鍵電路按鍵狀態(tài)的識(shí)別,這個(gè)設(shè)計(jì)比較人性化,可以照顧不同開(kāi)發(fā)者的不同應(yīng)用場(chǎng)合。

圖片

圖2 暴風(fēng)開(kāi)發(fā)板按鍵電路圖

圖2中要注意,此時(shí)電路設(shè)計(jì)沒(méi)有在PE2和PA0兩個(gè)引腳分別連一個(gè)電阻到VCC和地,所以我們得在GD32的內(nèi)部這兩個(gè)引腳這里分別使能這兩個(gè)電阻(GD32和STM32的每個(gè)IO引腳內(nèi)部都配有一對(duì)受控的上下拉電阻)。

1.2.2 機(jī)械按鍵狀態(tài)識(shí)別的思路設(shè)計(jì)

通常,我們都是設(shè)計(jì)一個(gè)函數(shù)來(lái)單獨(dú)判斷按鍵是否按下,這個(gè)按鍵函數(shù)的思路設(shè)計(jì)如下:

uint8_t Key_Scan(void)

{

   if(KEY0_Status == 0) || (WK_UP1_Status == 1)  //說(shuō)明有按鍵按下了

   {

      if(KEY0_Status == 0)     return KEY0_Value;

      if(WK_UP1_Status == 1)  return WK_UP1_Value;

}

return KEY0_NO;

}


在函數(shù)Key_Scan中,我們先判斷KEY0的狀態(tài)是不是0或者WK_UP1的狀態(tài)是不是為1,如果KEY0的狀態(tài)是0或者WK_UP1的狀態(tài)是1,說(shuō)明按鍵按下了,接下來(lái)進(jìn)行細(xì)分,看看是KEY0按下還是WK_UP1按下,并返回對(duì)應(yīng)的按鍵值。

對(duì)于Key_Scan函數(shù)的調(diào)用,我們可以在主函數(shù)中這樣調(diào)用

int main(void)

{

      uint8  keyvalue = 0;

    系統(tǒng)初始化;

      while(1)

      {

         keyvalue = Key_Scan();

         if(keyvalue == KEY0_Value) LED0 = ~LED0; // LED0狀態(tài)反轉(zhuǎn)

         if(keyvalue == WK_UP1_Value) LED1 = ~LED1;// LED1狀態(tài)反轉(zhuǎn)

    }

}


在主函數(shù)中,我們循環(huán)執(zhí)行按鍵掃描,如果發(fā)現(xiàn)按鍵掃描函數(shù)返回的是KEY0_Value,則將LED0的狀態(tài)反轉(zhuǎn),如果返回的是WK_UP1_Value,則將LED1的狀態(tài)反轉(zhuǎn)??偟膩?lái)說(shuō),我們是希望按下一次按鍵,對(duì)應(yīng)的LED的狀態(tài)就反轉(zhuǎn)。

上面這兩個(gè)函數(shù)的配合是否有問(wèn)題呢?表面看來(lái)好像沒(méi)有問(wèn)題,但是當(dāng)你用這個(gè)思路去完善程序并下載到開(kāi)發(fā)板執(zhí)行的時(shí)候,你會(huì)發(fā)現(xiàn)按鍵按下時(shí),燈的狀態(tài)是不受控的,這個(gè)不受控的原因是什么呢?我們看一下整個(gè)執(zhí)行過(guò)程。

假設(shè)有按鍵KEY0按下,則整個(gè)過(guò)程為

①執(zhí)行語(yǔ)句“keyvalue = Key_Scan();”此時(shí)返回KEY0_Value,接著執(zhí)行判斷并使得LED0狀態(tài)反轉(zhuǎn)一次,這個(gè)過(guò)程持續(xù)時(shí)間非常短,1ms內(nèi)估計(jì)就能執(zhí)行完。

②又回來(lái)執(zhí)行語(yǔ)句“keyvalue = Key_Scan();”,此時(shí)由于按鍵仍然處于按下?tīng)顟B(tài)(人為按下時(shí),按鍵的按下?tīng)顟B(tài)通常會(huì)超過(guò)100ms,典型的是600ms左右),所以又會(huì)返回KEY0_Value,接著執(zhí)行判斷并使得LED0狀態(tài)又反轉(zhuǎn)一次。

注意,此時(shí)按鍵的狀態(tài)已經(jīng)變化兩次了,但是我們只是執(zhí)行一次按下而已!!!!!

繼續(xù)往下分析,你會(huì)發(fā)現(xiàn)按鍵按下一次時(shí),這個(gè)判斷系統(tǒng)會(huì)執(zhí)行多次返回,這是錯(cuò)誤的。錯(cuò)誤的原因在哪里呢?在Key_Scan這個(gè)函數(shù)中,這個(gè)函數(shù)里面只要KEY0_Status等于0,它就會(huì)返回一次KEY0_Value,所以我們需要加一個(gè)變量,用于描述按鍵的當(dāng)前狀態(tài),如果當(dāng)前按鍵已經(jīng)按下了,則這里就不需要再次判斷了。由于這個(gè)變量描述按鍵的按下與彈起狀態(tài),在Key_Scan執(zhí)行完后也不能釋放它的存儲(chǔ)空間,所以我們需要用static修飾它,此時(shí)的Key_Scan函數(shù)需要修改如下:

uint8_t Key_Scan(void)

{

   static  uint8_t  flag = 0; //flag =0說(shuō)明當(dāng)前是彈起,=1說(shuō)明是按下

   /*如果剛才是彈起但現(xiàn)在有按鍵按下則判斷是那個(gè)按鍵按下,同時(shí)將按鍵狀態(tài)置為1*/

   if((flag == 0)&&((KEY0_Status == 0) || (WK_UP1_Status == 1)))     {

      flag = 1;

      if(KEY0_Status == 0)     return KEY0_Value;

      if(WK_UP1_Status == 1)  return WK_UP1_Value;

}

return KEY0_NO;

}

將Key_Scan函數(shù)修改為上面的樣子后,解決了按下一次就執(zhí)行一次返回,避免了按下一次則返回多次的問(wèn)題。但是它仍然是有重大缺陷的,因?yàn)槲覀儼聪乱淮伟存I后,flag被設(shè)置為1了,當(dāng)按鍵再次被按下時(shí)里面的按下判斷再也得不到執(zhí)行,也即剛剛修改后的函數(shù)只能判斷一次按鍵按下。要想將flag恢復(fù)為0,我們要在Key_Scan中增加彈起的語(yǔ)句,如果彈起了,將flag設(shè)置為0,則就可以解決多次按下后都能觸發(fā)判斷的問(wèn)題了。增加判斷后的Key_Scan函數(shù)如下:


uint8_t Key_Scan(void)

{

   static  uint8_t  flag = 0; //flag =0說(shuō)明當(dāng)前是彈起,=1說(shuō)明是按下

   /*如果剛才是彈起但現(xiàn)在有按鍵按下則判斷是那個(gè)按鍵按下,同時(shí)將按鍵狀態(tài)置為1*/

   if((flag == 0)&&((KEY0_Status == 0) || (WK_UP1_Status == 1)))  

   {

      flag = 1;

      if(KEY0_Status == 0)     return KEY0_Value;


      if(WK_UP1_Status == 1)  return WK_UP1_Value;

}

/*如果剛才按鍵按下,現(xiàn)在彈起了,則設(shè)置flag=0*/

   if((flag == 1)&&((KEY0_Status == 1) && (WK_UP1_Status == 0)))     {

      flag = 0;

  }

  return KEY0_NO;

}


注意,按鍵彈起指的是所有按鍵的彈起,所以(KEY0_Status == 1) && (WK_UP1_Status == 0)這里要用邏輯與,體現(xiàn)出“而且”之意。

至此,機(jī)械按鍵狀態(tài)識(shí)別的關(guān)鍵問(wèn)題就解決了。

1.2.3 機(jī)械按鍵的抖動(dòng)及其消除

雖然關(guān)鍵問(wèn)題解決了,但還有一些細(xì)節(jié)要注意,這個(gè)細(xì)節(jié)就是按鍵的抖動(dòng)。

以圖3的按鍵電路為例,當(dāng)按鍵按下時(shí),PE2引腳的電平狀態(tài)如圖4所示。

圖片

圖3 按鍵電路圖

圖片

圖4 按鍵按下過(guò)程

由圖4可見(jiàn),按鍵按下時(shí),PE2并不是馬上變?yōu)榈碗娖?,而是有一個(gè)漸變過(guò)程,而在彈起時(shí)也不是馬上變?yōu)楦唠娖?,它也有一個(gè)漸變過(guò)程。這些漸變過(guò)程我們叫做抖動(dòng)。在進(jìn)行按鍵的按下與彈起時(shí),我們都要進(jìn)行抖動(dòng)的消除。消除的方法非常簡(jiǎn)單,就是延時(shí)。通常,抖動(dòng)持續(xù)的時(shí)間在10ms之內(nèi),所有,我們只要進(jìn)行10ms的延時(shí)可以解決掉絕大部分機(jī)械按鍵的抖動(dòng)—如果解決不了,此時(shí)就要用示波器測(cè)一下你的按鍵按下與放開(kāi)時(shí)的信號(hào),看看具體的抖動(dòng)是多少,然后增加延時(shí)消除它,筆者就曾遇到過(guò)需要延時(shí)20ms的情況……

這個(gè)消抖的過(guò)程如下:

1、按下的消抖

if(按鍵按下)
{   Delay(10ms);   if(按鍵按下)
   {
      按鍵是真的按下,執(zhí)行相應(yīng)的動(dòng)作;
    }
}

2、彈起的消抖

if(按鍵彈起)
{Delay(10ms);if(按鍵彈起)
{
按鍵是真的彈起了,執(zhí)行相應(yīng)的動(dòng)作;
}
}

1.2.4 完整的按鍵判斷程序

加入消抖后,整個(gè)按鍵判斷的函數(shù)可以修改如下

uint8_t KEY_Scan(void)

{

      static  uint8_t  flag=0; //按鍵彈起為0,按下為1

      if(( flag == 0) && ((KEY0_Status == 0)||(WK_UP1_Status == 1)))

      {  

         /*按鍵剛剛處于彈起狀態(tài),但現(xiàn)在有按下*/

         HAL_Delay(10);    //延時(shí)10ms,消除抖動(dòng)

         if((KEY0_Status == 0)||(WK_UP1_Status == 1))

         {  

            /*確實(shí)有按鍵按下*/

            flag = 1;   //按鍵為按下?tīng)顟B(tài)

            if(KEY0_Status == 0)  return KEY0_Value;

            if(WK_UP1_Status == 1) return WK_UP1_Value;

         }  

      }

     if((flag == 1) && ((KEY0_Status == 1) && (WK_UP1_Status == 0)))

      {  

         /*按鍵處于彈起狀態(tài)而且剛才是按下?tīng)顟B(tài)*/

         HAL_Delay(10);    //消除彈起抖動(dòng)

         if((KEY0_Status == 1) && (WK_UP1_Status == 0))


         {

            flag = 0;   //按鍵彈起了

         }  

      }

      return  KEY_NO;   //沒(méi)有按鍵按下返回KEY_NO

}


1.3 按鍵狀態(tài)判斷實(shí)驗(yàn)

下面我們通過(guò)一個(gè)例子來(lái)驗(yàn)證按鍵狀態(tài)的識(shí)別。

【例1】已知按鍵電路和LED電路如圖5所示,編寫程序?qū)崿F(xiàn)以下功能:

按下按鍵KEY0, LED0的狀態(tài)反轉(zhuǎn);按下按鍵WK_UP1,LED1的狀態(tài)反轉(zhuǎn)。

圖片

圖5 按鍵電路和LED電路示意圖

【實(shí)現(xiàn)過(guò)程】

1.配置RCC的高速時(shí)鐘來(lái)自于外部晶體陶瓷晶振,并且設(shè)置HCLK的頻率為72Mhz。

2.設(shè)置調(diào)式方式為Serial Wire。

以上兩步不懂如何設(shè)置的可以回頭看一下【模塊一 GPIO口的輸出功能-LED的閃爍實(shí)驗(yàn)】這一部分的步驟介紹。

3.設(shè)置PE12、PE13引腳的工作模式為輸出,PE12的User Label選項(xiàng)為L(zhǎng)ED0,PE13的User Label設(shè)置為L(zhǎng)ED1,以使能更加直觀方便。另外,一開(kāi)始我們將這兩盞LED燈都點(diǎn)亮,以方便觀察結(jié)果。PE12和PE13的設(shè)置結(jié)果如圖6所示。

圖片

圖6 PE12和PE13的設(shè)置過(guò)程

4.設(shè)置PE2和PA0為輸入。PE2引腳上拉電阻使能,PA0引腳下拉電阻使能。同時(shí)設(shè)置PE2的用戶標(biāo)號(hào)為KEY0,設(shè)置PA0引腳的標(biāo)號(hào)為WK_UP1,。PE2引腳的設(shè)置如圖7所示,PA0引腳的設(shè)置如圖8所示。

圖片

圖7 PE2引腳的設(shè)置結(jié)果示意圖

圖片

圖8 PA0引腳的設(shè)置

5.設(shè)置好后,給工程取名,同時(shí)選擇IDE,并生成工程代碼。

6.添加代碼。

①編寫按鍵識(shí)別的C語(yǔ)言文件,其內(nèi)容如圖9所示。

圖片

圖9 key.c中內(nèi)容示意圖

②在key.h中定義KEY0_Value等宏名,如圖10所示。

圖片

圖10 KEY0_Value等的定義示意圖

③修改主函數(shù),其內(nèi)容如圖11所示。

圖片

圖11 主函數(shù)的內(nèi)容示意圖

在主函數(shù)中,注意要將頭文件key.h包含進(jìn)工程,如圖12所示。

圖片

至此,工程的代碼添加完畢,編譯后下載到開(kāi)發(fā)板,按復(fù)位鍵,然后按KEY0或者WK_UP0,可以看到對(duì)應(yīng)的LED燈的狀態(tài)反轉(zhuǎn),任務(wù)目標(biāo)完成。

1.4 按鍵識(shí)別實(shí)驗(yàn)用到的HAL庫(kù)的函數(shù)解讀

1.引腳電平反轉(zhuǎn)函數(shù) HAL_GPIO_TogglePin()

在主函數(shù)main的while循環(huán)中,我們使用到了函數(shù)HAL_GPIO_TogglePin,這個(gè)函數(shù)的相關(guān)信息為

●作用:將某個(gè)IO引腳的輸出電平反轉(zhuǎn)。比如要反轉(zhuǎn)PE12引腳的電平,我們可以采用如下的方式來(lái)調(diào)用該函數(shù):

HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_12);

●函數(shù)參數(shù),有兩個(gè),第一個(gè)用于指明要反轉(zhuǎn)信號(hào)的引腳位于第幾組GPIO口,第二個(gè)用于指明要反轉(zhuǎn)的是哪一個(gè)引腳的信號(hào)。

是不是很方便呢?

最后要注意,函數(shù)HAL_GPIO_TogglePin要使用于將IO引腳已經(jīng)配置為輸出的場(chǎng)合。

2.讀引腳信號(hào)函數(shù)HAL_GPIO_ReadPin()

在key.c函數(shù)中,有一個(gè)宏定義

#define KEY0_Status HAL_GPIO_ReadPin(KEY0_GPIO_Port, KEY0_Pin)

里面用到了一個(gè)函數(shù)HAL_GPIO_ReadPin,這個(gè)函數(shù)相關(guān)的信息如下:

●作用:讀取某個(gè)引腳的狀態(tài)。比如要讀取PA0的狀態(tài),我們可以采用如下的方式來(lái)調(diào)用該函數(shù)

HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0);

●函數(shù)參數(shù),有兩個(gè),第一個(gè)用于指明要讀取信號(hào)的引腳位于那組GPIO口,第二個(gè)參數(shù)用于指明是那個(gè)引腳。

注意,函數(shù)HAL_GPIO_ReadPin使用于IO引腳已經(jīng)設(shè)置為輸入的場(chǎng)合

1.5 GPIO輸入功能總結(jié)

在使用GD32/STM32的IO引腳時(shí)要注意以下兩點(diǎn):

1.如果引腳外部沒(méi)有上拉電阻或者下拉電阻,則可能需要在引腳內(nèi)部使能上拉電阻或者下拉電阻。

2.對(duì)按鍵狀態(tài)進(jìn)行識(shí)別時(shí),一定要注意防止按下一次時(shí)有多次返回值。


關(guān)鍵字:GD32  MCU  識(shí)別 引用地址:GD32 MCU機(jī)械按鍵狀態(tài)的識(shí)別

上一篇:GD32開(kāi)發(fā)實(shí)戰(zhàn)指南(基礎(chǔ)篇) 第14章 內(nèi)部溫度傳感器
下一篇:GD32 Azure IoT解決方案

推薦閱讀最新更新時(shí)間:2025-07-19 03:59

GD32 MCU 入門教程】一、GD32 MCU 開(kāi)發(fā)環(huán)境搭建(1)使用Keil開(kāi)發(fā)GD32
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建議安裝4.74及以上;使用Keil 5建議安裝5.20以上版本(注意:GD32E23x系列必須使用Keil5開(kāi)發(fā))。 1.1 在Keil4中添加GD32 MCU Device 1.1.1 從GD32官網(wǎng)下載相關(guān)系列插件。 下面以GD32F30x為例,在官網(wǎng)上下載MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如圖所示: 1.1.2 雙擊解壓安裝至Keil 4的目錄,一般都會(huì)默認(rèn)選擇,如若同時(shí)安裝了Keil 4和Keil 5才需要手動(dòng)選擇。 1.1.3 安裝成功后,重新打開(kāi)Keil 4,則可以在File- Device
[單片機(jī)]
【<font color='red'>GD32</font> <font color='red'>MCU</font> 入門教程】一、<font color='red'>GD32</font> <font color='red'>MCU</font> 開(kāi)發(fā)環(huán)境搭建(1)使用Keil開(kāi)發(fā)<font color='red'>GD32</font>
GD32 FATFS+FTL Nand解決方案
1. 方案簡(jiǎn)介 Nand flash有非易失、存儲(chǔ)容量大、壽命長(zhǎng)等優(yōu)點(diǎn);同時(shí)具有存在壞塊、擦除次數(shù)有限、易出現(xiàn)error bit的缺點(diǎn);并且具有擦除以block(塊)為單位,寫入以page(頁(yè))為單位,讀取以sector(512 byte)為單位的特點(diǎn)。 基于上述原因,對(duì)Nand flash的應(yīng)用不僅要避免壞塊、均衡塊擦除次數(shù)、糾正error bit,而且需要按照其讀寫擦的特點(diǎn)進(jìn)行應(yīng)用。若沒(méi)有一套管理軟件針對(duì)nand的特性,則對(duì)其應(yīng)用將非常困難。 FTL(Flash Transform Layer)是基于nand flash的管理算法軟件,可解決上述提出的所有問(wèn)題,將Nand flash模擬成如。 ▲ FTL軟件架構(gòu)圖 2
[單片機(jī)]
<font color='red'>GD32</font> FATFS+FTL Nand解決方案
s3c2440裸機(jī)-nandflash編程(三. 初始化及識(shí)別
nandFlash命令表 對(duì)NAND FLASH的操作需要發(fā)出命令,下面有個(gè)NAND FLASH的命令表格,那么我們可以此表格上的命令來(lái)訪問(wèn)我們的nandflash. 1)時(shí)序分析 上面命令表中的讀id還不太直觀,下圖是從nand芯片手冊(cè)中截取出的讀id時(shí)序圖: ①第一條豎線位置,發(fā)送了nCE,CLE,nWE信號(hào),所以90命令被鎖存(readID命令); ②第二條豎線位置,發(fā)送了nCE,ALE,nWE信號(hào),所以地址00被鎖存; 繼續(xù)往后,命令、地址都發(fā)完了,要read數(shù)據(jù)了,所以釋放nWE,ALE,這里tAR表示ALE釋放多久后才可以發(fā)送nRE信號(hào),tREA表示nRE信號(hào)的建立時(shí)間; ③第三條豎線位置,發(fā)送了nCE,nRE信號(hào)
[單片機(jī)]
s3c2440裸機(jī)-nandflash編程(三. 初始化及<font color='red'>識(shí)別</font>)
啟英泰倫第三代語(yǔ)音識(shí)別芯片即將正式發(fā)布
  “三芯起 萬(wàn)物聲”啟英泰倫第三代語(yǔ)音識(shí)別芯片要來(lái)了,2022年7月28日啟英泰倫第三代語(yǔ)音識(shí)別芯片即將發(fā)布,我們一起先來(lái)了解一下。   為優(yōu)化啟英泰倫第三代語(yǔ)音識(shí)別芯片的性能,啟英泰倫董事長(zhǎng)何云鵬帶領(lǐng)團(tuán)隊(duì)幾乎每年都會(huì)迭代并量產(chǎn)一顆更高性能的芯片。經(jīng)過(guò)多年技術(shù)積累,該芯片已經(jīng)迭代了三次,讓人工智能的服務(wù)愈加完善。一代只能實(shí)現(xiàn)離線語(yǔ)音識(shí)別,到二代就可以精準(zhǔn)識(shí)別各地方言、不同說(shuō)話人的身份,并據(jù)此作出個(gè)性化響應(yīng)。第三代則擺脫了前兩代只識(shí)別固定詞匯的限制,能從人們隨意的日常語(yǔ)言中識(shí)別和理解具體語(yǔ)義,并執(zhí)行命令。   七年來(lái),啟英泰倫發(fā)布CI1006、CI1002、CI1102、CI1103、CI1122等九顆芯片,迭代三代 BN
[嵌入式]
J-Link V6.30h Device Selection 無(wú)法識(shí)別到STM32H743VITx芯片
下載最新版本的jlink驅(qū)動(dòng): https://www.segger.com/downloads/jlink/JLink_Windows.exe 然后在接下來(lái)的列表里選擇Cortex-M7,就可以識(shí)別了: 但是下載會(huì)出現(xiàn)錯(cuò)誤: 降低下載頻率: 之前使用的是F767的板子,同樣的pcb設(shè)計(jì) ,只是芯片不一樣而已,但是F767就可以快速,著實(shí)想不通,看了下正點(diǎn)原子的手冊(cè),USB數(shù)據(jù)線太差? 因?yàn)榉抡嫫鹘釉诜志€器上的,直接接到電腦上……臥槽速度就起來(lái)了……
[單片機(jī)]
J-Link V6.30h Device Selection 無(wú)法<font color='red'>識(shí)別</font>到STM32H743VITx芯片
基于顏色識(shí)別的智能小車集群控制
引言 隨著嵌入式技術(shù)的發(fā)展,基于小型便攜式識(shí)別和集群控制技術(shù)較傳統(tǒng)計(jì)算機(jī)技術(shù)具有更廣闊的應(yīng)用?;跀z像頭的顏色識(shí)別技術(shù)較一般傳感器定位和采集技術(shù)具有穩(wěn)定性和可移動(dòng)等方面的優(yōu)勢(shì) ,在生產(chǎn)車間自動(dòng)物料配送車的循跡以及基于顏色的物料提取中具有廣泛的應(yīng)用前景 。而集群控制作為一種新生的控制方式,在大范圍、多控制對(duì)象的控制方面具有舉足輕重的作用,如太陽(yáng)能發(fā)電板的集群控制、風(fēng)力發(fā)電機(jī)的集群控制以及大型舞臺(tái)劇中的燈光集群控制。而本文中的小車集群控制是將顏色識(shí)別與集群控制的較好方式。小車位置及方向信息通過(guò)攝像頭的顏色識(shí)別技術(shù)獲取,處理之后傳送到STM32進(jìn)行校驗(yàn),并通過(guò)無(wú)線模塊發(fā)送出去,驅(qū)動(dòng)多輛小車按指定的路線行走,從而實(shí)現(xiàn)集群控制。 1
[單片機(jī)]
基于顏色<font color='red'>識(shí)別</font>的智能小車集群控制
推動(dòng)生物識(shí)別發(fā)展,2020第四屆生物識(shí)別技術(shù)與應(yīng)用論壇閉幕
2020年10月30日下午,由芯智訊主辦的“新挑戰(zhàn)·新機(jī)遇——2020第四屆生物識(shí)別技術(shù)與應(yīng)用論壇”,本次高峰論壇匯聚了來(lái)自曠視科技、兆易創(chuàng)新、艾邁斯半導(dǎo)體、高德智感、舜宇智能光學(xué)、思特威、歐菲智聯(lián)等兩百多家產(chǎn)業(yè)鏈上下游企業(yè),以及中科院深圳先進(jìn)技術(shù)研究院等研究機(jī)構(gòu)和行業(yè)媒體,近300人參與。 一、生物識(shí)別產(chǎn)業(yè)的新挑戰(zhàn)與新機(jī)遇 本次論壇活動(dòng)的主題為“新挑戰(zhàn)·新機(jī)遇”,因此在活動(dòng)開(kāi)場(chǎng)前,芯智訊創(chuàng)始人兼總編楊健也以此為題,做了對(duì)于整個(gè)生物識(shí)別產(chǎn)業(yè)現(xiàn)狀和未來(lái)發(fā)展的剖析。 △芯智訊創(chuàng)始人兼總編楊健 所謂新挑戰(zhàn),一方面是新冠疫情,另一方面則是中美科技戰(zhàn),都對(duì)于包括生物識(shí)別在內(nèi)的整個(gè)科技產(chǎn)業(yè)鏈的帶來(lái)了新的挑戰(zhàn)。不過(guò)生物
[物聯(lián)網(wǎng)]
推動(dòng)生物<font color='red'>識(shí)別</font>發(fā)展,2020第四屆生物<font color='red'>識(shí)別</font>技術(shù)與應(yīng)用論壇閉幕
華為Watch GT 2獲推系統(tǒng)更新:新增運(yùn)動(dòng)類自動(dòng)識(shí)別
據(jù)IT之家網(wǎng)友反饋,華為近日面向Watch GT 2用戶推送了1.0.8.16系統(tǒng)更新,此次更新新增/優(yōu)化了部分功能。 此次更新文件大小為18.77MB,主要為華為Watch GT 2新增了運(yùn)動(dòng)類型自動(dòng)識(shí)別功能,同時(shí)優(yōu)增加了部分雙時(shí)區(qū)區(qū)域并優(yōu)化了系統(tǒng)穩(wěn)定性。
[手機(jī)便攜]
華為Watch GT 2獲推系統(tǒng)更新:新增運(yùn)動(dòng)類自動(dòng)<font color='red'>識(shí)別</font>
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved