不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

GPIO

關注
創(chuàng)建者:匿名 創(chuàng)建時間:2021-08-27
GPIO圖1

GPIO的實例教程

0x23,二進制表示為00100011,傳輸順序為1->1->0->0->0->1->0->0 掌握清楚這個時序那么也就好用GPIO模擬了,除了需要兩個GPIO,還需要兩個定時器(分別用于接收和發(fā)送時序控制),另外需要說明的是,為方便起見,采樣頻率這里就設置成了波特率。 1) 對于接收,當RX引腳檢測到下降沿時,進入GPIO中斷,然后開啟一個定時器,第一次定時器周期設置為1/波特率的一半(目的是為了在中心處判斷是否為低電平,以表示是否為起始位),再之后就可以設置定時器周期為1/波特率,每隔此周期在定時器中斷里去采樣RX引腳電平,將數(shù)據(jù)接收完畢 2)對于發(fā)送,首先發(fā)送一個起始位,之后以1/波特率為周期,在定時器中斷里去發(fā)送比特位即可。 我在NXP的MCU上做了實現(xiàn),經過測試波特率可以達到38400. 有需要代碼的添加管理員微信獲取(見本文最后二維碼)。 以下是對程序的簡單說明: 1)gpio_uart_demo_init() 里可以配置UART的相關參數(shù),如波特率,奇偶校驗,數(shù)據(jù)位長度 2)void gpio_uart_read(uint8_t *bufptr, uint32_t size, void (*rx_callback)(void)) 這個函數(shù)為uart 接收函數(shù),第一個參數(shù)為數(shù)據(jù)存放buffer,第二個數(shù)據(jù)為接收長度,第三個參數(shù)為callback函數(shù)。注意目前的實現(xiàn)是調用此函數(shù)后,當接收完指定長度數(shù)據(jù)后,會停止接收數(shù)據(jù)。 如果之后要繼續(xù)接收,需要再次調用這個函數(shù)。
展開
查理復用是一種能夠在驅動LED,特別是驅動大量LED時有效地節(jié)約GPIO的方法。 使用該方法,n個GPIO可以驅動 n*(n-1) 個LED,所以: 使用2個GPIO可以驅動2個LED。 使用3個GPIO可以驅動6個LED。 使用4個GPIO可以驅動12個LED。 以此類推。 這種方式能夠實現(xiàn)的基礎是: 單片機GPIO的三個狀態(tài):高電平、低電平、高阻態(tài)。 LED具有單向導電性。 查理復用設計的方法: 任意兩個GPIO引腳之間串入兩個LED,這兩個LED為并聯(lián),且LED方向相反。 當你想要點亮某個特定的LED時,就將其兩端所連接到的GPIO引腳分別設定為高電平和低電平,其它剩余的GPIO引腳設定為高阻態(tài)。 前面電動牙刷中6個LED燈的電路,就是這么設計的。 下面從最簡單的開始,一步一步體會查理復用的電路設計。 1、使用2個GPIO時最簡單: LED1亮起時: LED2亮起時: 這里只用到高電平、低電平的狀態(tài),不需要用高阻態(tài)的狀態(tài)。 2、使用3個GPIO時,前面已經分析過: 可以等效為下圖: 可以看出,確實是任意兩個GPIO之間均串入了兩個并聯(lián)的LED,且LED方向相反。 3、同樣的原理,使用4個GPIO時: 點亮LED1時: 其他LED亮起的情況不再列舉。 查理復用這樣的電路接法也會引發(fā)一些問題。 首先,LED亮起時完全由單片機的GPIO輸出電流,所以對于GPIO的電流驅動能力有一定的要求。
展開
最終用固件庫實現(xiàn)就變成這樣: // 定義一個GPIO_InitTypeDef 類型的結構體 GPIO_InitTypeDef GPIO_InitStructure; // 選擇要控制的IO 口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 設置引腳為推挽輸出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 設置引腳速率為50MHz GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; /*調用庫函數(shù),初始化GPIOB0*/ GPIO_Init(GPIOB, &GPIO_InitStructure); 倘若同一端口下不同引腳有不同的模式配置,每次對每個引腳配置完成后都要調用GPIO初始化函數(shù),代碼如下: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉輸入 GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init
展開
最終用固件庫實現(xiàn)就變成這樣: // 定義一個GPIO_InitTypeDef 類型的結構體 GPIO_InitTypeDef GPIO_InitStructure; // 選擇要控制的IO 口 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 設置引腳為推挽輸出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 設置引腳速率為50MHz GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; /*調用庫函數(shù),初始化GPIOB0*/ GPIO_Init(GPIOB, &GPIO_InitStructure); 倘若同一端口下不同引腳有不同的模式配置,每次對每個引腳配置完成后都要調用GPIO初始化函數(shù),代碼如下: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉輸入 GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init
展開
GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* 第一步:初始化GPIO */ // 打開串口GPIO的時鐘 DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE); // 將USART Tx的GPIO配置為推挽復用模式 GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure); // 將USART Rx的GPIO配置為浮空輸入模式 GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure); /* 第二步:配置串口的初始化結構體 */ // 打開串口外設的時鐘 DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE); // 配置串口的工作參數(shù) // 配置波特率 USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE; // 配置 針數(shù)據(jù)字長 USART_InitStructure.USART_WordLength
展開
GPIO圖2

GPIO的最新內容

通過將GPIO0和GPIO1配置為 TXEN 和 RXEN 功能以控制外部功率放大器(PA)和LNA,可擴展通信范圍。頻率合成器完全集成,無需任何外部組件。
為了簡化系統(tǒng)應用,芯片的ID搜索、測溫數(shù)據(jù)內存訪問、功能配置等均基于數(shù)字單總線協(xié)議(One Wire,OW)指令,上位機微處理器只需一個GPIO端口便可進行讀寫訪問。單總線通信接口是通過共用一根數(shù)據(jù)總線來實現(xiàn)多節(jié)點傳感采集與組網的低成本方案,傳輸距離遠、支持節(jié)點數(shù)多,便于空間分布式傳感組網。較多可支持100個節(jié)點100至500米長的測溫節(jié)點串聯(lián)組網。
支持深度睡眠 + GPIO 喚醒,適合電池供電的低占空比應用。 封裝與可靠性 封裝:SOP8(超小體積,適合緊湊設計)。 工作溫度:?40℃ ~ +85℃,工業(yè)級溫度范圍。 內置 POR(上電復位)、LVR(低電壓復位),簡化外圍電路。
接口擴展性:提供28個GPIO、2個全雙工I2S接口(支持8-192kHz采樣率)、1個S/PDIF接口(支持HDMI音頻與ARC),以及4路數(shù)字/2路模擬麥克風輸入,適配多種外設連接。
-96 dBm Sensitivity@1Mbps -93 dBm Sensitivity@2Mbps -99 dBm Sensitivity@250Kbps 最大 13 dBm 輸出功率 I2C、2 路 UART 最多 11GPIO,25mA 輸出1 PGA,0~42.3dB/1.6dB step 麥克風支持差分和單端可以配置 集成溫度傳感器 4*32bit
外設2 個 GPIO 口,可被主控 MCU 控制;1個全雙工 UART @ max.3Mbps,用于log 輸出;4路 Audio-ADC信噪比(SNR)≥94dB,3路Audio-DAC信噪比≥105dB;采樣率支持:8KHz / 11.025KHz /12KHz/16KHz /22.05KHz/24KHz/32KHz/44.1KHz/48KHz。
內核,支持點屏和按鍵等操作 內置 fash 存儲器,支持頻段配置和數(shù)據(jù)記憶等 高效電源管理系統(tǒng): -單電源供電(3.0V~4.3V) -集成LDO與DCDC電源模塊 -支持軟/硬開關控制與8秒復位功能 -具備上電復位(POR)、低電壓監(jiān)測(LVD)與看門狗(WDG) 低功耗: -支持 Sleep、Deep Sleep 和Powerdown 三種低功耗模式 -支持 GPIO
低功耗 - 接收模式:2.5mA@1Mbps(DCDC) - 發(fā)射模式:5.06 mA@0dBm(DCDC) - 待機模式:0.28uA - 待機模式(SRAM保留):1.88uA(支持GPIO / XTL / RCL喚醒) - 深度睡眠模式:3.37uA(All Logic Retention,GPIO、XTL、RCL可喚醒) 6.
,需要5根線,VCC、GND、Boo(t GPIO4)、Uart_TX 、(GPIO5)和Uart_RX(GPIO6),需注意,只有GPIO4/5/6是下載口,在GPIO資源夠用的條件下,此下載口不要共用其他功能。
? 支持XIP,128KB閃存 ? 8 KByte SRAM+4KB ROM ? I2C、2 路UART ? 1-axis Quadrature Decoder ? 11路(外部7路+內部4路)12bit通用ADC,最高速率1M采樣率 ? PWM(6路, 其中4路帶死區(qū)控制互補輸出),最高16位連續(xù)可調,支持中心對齊模式,支持剎車,支持pmw 和adc聯(lián)動 ? 最多11GPIO