日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式大雜燴
[導讀]前兩天群友岸與橋在群里問了這樣一個面試題: 看到這樣一個問題,群里討論得很熱鬧,幾位群友也給出了一些解答,主要有兩種思路: ① 第一種思路是:依次輸出相應電平,高、低電平持續(xù)的時間根據題目要求確定即可。關鍵代碼如下(代碼來自昵稱為宋陽的群友)

前兩天群友岸與橋在群里問了這樣一個面試題:


看到這樣一個問題,群里討論得很熱鬧,幾位群友也給出了一些解答,主要有兩種思路:

① 第一種思路是:依次輸出相應電平,高、低電平持續(xù)的時間根據題目要求確定即可。關鍵代碼如下(代碼來自昵稱為宋陽的群友):

static void plus(uint16_t h_times, uint16_t l_times) 
{
  IO_HIGH();
  HAL_Delay(h_times);
  IO_LOW();
  HAL_Delay(l_times);
}

static void outplus(void) 
{
  plus(21);
  plus(12);
  plus(31);
  plus(11);
  plus(21);
  plus(21);
  plus(30);
}

實際測試結果如下:


② 第二種思路是:可以把這個波形看做數據(0x1A75B7)來看待,這樣一來就可以通過一個GPIO來按照這個數據輸出相應的高低電平就可以得到對應的波形。關鍵代碼如下(代碼來自@_GWD、上海-zak、習道道等群友):

uint32_t out_data = 0x1A75B7;
static void WaveOutput(uint32_t data)
{
  int i;
  for (i = 0; i < 21; i++)
  {
    if (data & 0x100000)
    {
      IO_HIGH();
    }
    else
    {
      IO_LOW();
    }
    data <<= 1;
    HAL_Delay(1);
  }
}

經過實測得到的波形與上面的方法得到的波形是一致的,都能滿足題目的要求。

針對這個題目,似乎按照第一種方法能更快地做出來。但是,我覺得這道題目真正要考察的應該是第二種思路,因為這個思路就是軟件I2C、SPI的套路呀,想要考察我們會不會使用GPIO模擬一些總線協議。

軟件I2C的發(fā)送函數(代碼來自:安富萊):

/*
*********************************************************************************************************
* 函 數 名: i2c_SendByte
* 功能說明: CPU向I2C總線設備發(fā)送8bit數據
* 形    參:  _ucByte : 等待發(fā)送的字節(jié)
* 返 回 值: 無
*********************************************************************************************************
*/
void i2c_SendByte(uint8_t _ucByte)
{
 uint8_t i;

 /* 先發(fā)送字節(jié)的高位bit7 */
 for (i = 0; i < 8; i++)
 {
  if (_ucByte & 0x80)
  {
   I2C_SDA_1();
  }
  else
  {
   I2C_SDA_0();
  }
  i2c_Delay();
  I2C_SCL_1();
  i2c_Delay();
  I2C_SCL_0();
  if (i == 7)
  {
    I2C_SDA_1(); // 釋放總線
  }
  _ucByte <<= 1; /* 左移一個bit */
  i2c_Delay();
 }
}

軟件SPI的發(fā)送函數(代碼來自:安富萊):

/*
*********************************************************************************************************
* 函 數 名: bsp_spiWrite0
* 功能說明: 向SPI總線發(fā)送一個字節(jié)。SCK上升沿采集數據, SCK空閑時為低電平。
* 形    參: 無
* 返 回 值: 無
*********************************************************************************************************
*/
void bsp_spiWrite0(uint8_t _ucByte)
{
 uint8_t i;

 for(i = 0; i < 8; i++)
 {
  if (_ucByte & 0x80)
  {
   MOSI_1();
  }
  else
  {
   MOSI_0();
  }
  bsp_spiDelay();
  SCK_1();
  _ucByte <<= 1;
  bsp_spiDelay();
  SCK_0();
 }
 bsp_spiDelay();
}

看看,是不是一樣的套路。SPI、I2C是兩塊重中之重的知識,而且也是我們嵌入式筆試面試中的高頻考點,需要我們反復去理解,吸收。

本篇文章相關的工程、資料已整理好,在公眾號后臺回復暗號:請寫一個函數輸出如下波形,即可獲取。

為了便于公眾號讀者交流學習,小編創(chuàng)建了相關相關交流群。坑位有限,感興趣的朋友可以掃碼下方二維碼加我微信,由我邀請入群


歡迎大家進群交流、共同進步。同時,我也會關注一些大家問的一些問題,從中挑選一些具有代表性的、并且在我知識范圍內的問題寫出相關文章做分享。

猜你喜歡

C語言、嵌入式中幾個非常實用的宏技巧

串口打印知多少?

串口通訊你真的會了嗎?不妨看看這些經驗

一種簡單、實用的測量程序運行時間的方法

免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統,而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉