中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

日本男女做受網(wǎng)站手機(jī)百度如何發(fā)布廣告

日本男女做受網(wǎng)站,手機(jī)百度如何發(fā)布廣告,javaweb和javaee,中央人民政府電話STM32之GPIO GPIO在輸出模式時(shí)可以控制端口輸出高低電平,用以驅(qū)動(dòng)Led蜂鳴器等外設(shè),以及模擬通信協(xié)議輸出時(shí)序等。 輸入模式時(shí)可以讀取端口的高低電平或電壓,用于讀取按鍵輸入,外接模塊電平信號(hào)輸入,ADC電壓采集燈 GP…

STM32之GPIO

GPIO在輸出模式時(shí)可以控制端口輸出高低電平,用以驅(qū)動(dòng)Led蜂鳴器等外設(shè),以及模擬通信協(xié)議輸出時(shí)序等。

輸入模式時(shí)可以讀取端口的高低電平或電壓,用于讀取按鍵輸入,外接模塊電平信號(hào)輸入,ADC電壓采集燈

GPIO的位模式圖如下所示:

這個(gè)模式圖接了一個(gè)上拉電阻和一個(gè)下拉電阻,上拉表示的是高電平的輸入模式,下拉表示的是低電平的輸入模式。

施密特觸發(fā)器 的功能作用以及原理

施密特觸發(fā)器對(duì)輸入的電壓進(jìn)行整型,如果輸入的電壓大于某一個(gè)閾值,輸出會(huì)瞬間升為高電平,如果輸入電壓小于某一個(gè)閾值,輸出就會(huì)小于某一個(gè)閾值

輸入數(shù)據(jù)寄存器存儲(chǔ)施密特觸發(fā)器整形的波形進(jìn)入輸入寄存器,讀取輸入寄存器得到輸入的電平,

?相關(guān)外設(shè)介紹:led外設(shè)以及蜂鳴器外設(shè)

面包板介紹:

接線:連接STM32和最小系統(tǒng)班,接線圖

此處:默認(rèn)led項(xiàng)目創(chuàng)建完成

GPIO所包含的庫(kù)函數(shù)如下所示


?? ??? ??? ?調(diào)用GPIO_DeInit這個(gè)函數(shù)后指定的gpio外設(shè)會(huì)被復(fù)位,這是這個(gè)函數(shù)用途
?? ??? ??? ?void GPIO_DeInit(GPIO_TypeDef* GPIOx);
?? ??? ??? ?復(fù)位AFIO外設(shè)
?? ??? ??? ?void GPIO_AFIODeInit(void);
?? ??? ??? ?用結(jié)構(gòu)體的參數(shù)初始化gpio口
?? ??? ??? ?void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
?? ??? ??? ?把結(jié)構(gòu)體變量賦一個(gè)默認(rèn)的值
?? ??? ??? ?void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
?? ??? ??? ?uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
?? ??? ??? ?uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
?? ??? ??? ?uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
?? ??? ??? ?uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
?? ??? ??? ? 以上是GPIO的讀取函數(shù)
?? ??? ??? ?void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
?? ??? ??? ?void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
?? ??? ??? ?void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
?? ??? ??? ?void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
?? ??? ??? ?以上是GPIO的寫(xiě)入函數(shù)
?? ??? ??? ?void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
?? ??? ??? ?void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t?? GPIO_PinSource);
?? ??? ??? ?void GPIO_EventOutputCmd(FunctionalState NewState);
?? ??? ??? ?void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
?? ??? ??? ?void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

typedef enum
{ GPIO_Mode_AIN = 0x0,?? // 模擬輸入
? GPIO_Mode_IN_FLOATING = 0x04, // 浮空輸入
? GPIO_Mode_IPD = 0x28,// 下拉輸入
? GPIO_Mode_IPU = 0x48, //上拉輸入
? GPIO_Mode_Out_OD = 0x14, // 開(kāi)漏輸出
? GPIO_Mode_Out_PP = 0x10, // 推挽輸出
? GPIO_Mode_AF_OD = 0x1C, // 復(fù)用開(kāi)漏
? GPIO_Mode_AF_PP = 0x18? // 復(fù)用推挽
}GPIOMode_TypeDef;

點(diǎn)亮led燈使用的是推挽輸出

使用GPIO ResetBits來(lái)點(diǎn)亮LED燈

#include "stm32f10x.h"                  // Device header// 操作GPIO 1: 使用rcc開(kāi)啟gpio時(shí)鐘// 使用GPIO_Init函數(shù)初始化GPIO// 使用輸入或輸出函數(shù)控制GPIO口
int main(void){// 開(kāi)啟時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);// GPIO的結(jié)構(gòu)體GPIO_InitTypeDef GPIO_InitStructure;// 選擇輸出模式為推挽輸出GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 選擇輸出的引腳GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;// 輸出速度GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;// GPIO初始化結(jié)構(gòu)體的地址放到GPIO——Init的第二個(gè)參數(shù)GPIO_Init(GPIOA,&GPIO_InitStructure);// GPIO設(shè)置A0口的燈亮GPIO_ResetBits(GPIOA,GPIO_Pin_0);// 設(shè)置LED燈熄滅GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){}}

查看函數(shù)的定義了解函數(shù)的功能以及如何使用函數(shù)

#include "stm32f10x.h"????????????????? // Device header
?? ??? ? // 操作GPIO 1: 使用rcc開(kāi)啟gpio時(shí)鐘
?? ??? ??? // 使用GPIO_Init函數(shù)初始化GPIO
?? ??? ??? ? // 使用輸入或輸出函數(shù)控制GPIO口
int main(void){
?? ?? // 開(kāi)啟時(shí)鐘
?? ?? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
?? ?? // GPIO的結(jié)構(gòu)體
?? ?? GPIO_InitTypeDef GPIO_InitStructure;
?? ?? // 選擇輸出模式為推挽輸出
?? ?? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
?? ?? // 選擇輸出的引腳
?? ?? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
?? ?? // 輸出速度
?? ?? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
?? ?? // GPIO初始化結(jié)構(gòu)體的地址放到GPIO——Init的第二個(gè)參數(shù)
?? ?? GPIO_Init(GPIOA,&GPIO_InitStructure);
?? ?? // GPIO設(shè)置A0口的燈亮,最后一個(gè)參數(shù)Bit_RESET表示的是清除端口的值為0,清除端口的值為1
?? ?? GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);// Bit_RESET時(shí)LED燈是點(diǎn)亮狀態(tài),當(dāng)為Bit_SET時(shí)LED燈是熄滅狀態(tài)
??? while(1){

?? ??? ?}

}

STM32實(shí)現(xiàn)LED燈的亮滅

#include "stm32f10x.h"    // Device header
#include "Delay.h"// 操作GPIO 1: 使用rcc開(kāi)啟gpio時(shí)鐘// 使用GPIO_Init函數(shù)初始化GPIO// 使用輸入或輸出函數(shù)控制GPIO口
int main(void){// 開(kāi)啟時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);// GPIO的結(jié)構(gòu)體GPIO_InitTypeDef GPIO_InitStructure;// 選擇輸出模式為推挽輸出// 選擇輸出模式為推挽輸出PP表示的是推挽輸出模式,OD表示開(kāi)漏輸出模式// 推挽輸出高電平和低電平均有輸出能力,開(kāi)漏輸出自由在低電平的情況下才有驅(qū)動(dòng)能力GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 選擇輸出的引腳GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;// 輸出速度GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;// GPIO初始化結(jié)構(gòu)體的地址放到GPIO——Init的第二個(gè)參數(shù)GPIO_Init(GPIOA,&GPIO_InitStructure);// GPIO設(shè)置A0口的燈亮,最后一個(gè)參數(shù)Bit_RESET表示的是清除端口的值為0,清除端口的值為1GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);// Bit_RESET時(shí)LED燈是點(diǎn)亮狀態(tài),當(dāng)為Bit_SET時(shí)LED燈是熄滅狀態(tài)while(1){// 實(shí)現(xiàn)led燈光閃爍的功能需要在主循環(huán)中寫(xiě)上點(diǎn)亮led燈熄滅led燈光的操作并在while中循環(huán)GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);Delay_ms(500);// 添加延時(shí)函數(shù)進(jìn)行延時(shí)GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);Delay_ms(500);/*   使用GPIO點(diǎn)亮led燈GPIO_ResetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);GPIO_SetBits(GPIOA,GPIO_Pin_0);Delay_ms(500);*/}}

延時(shí)函數(shù)從文件中引入

使用STM32實(shí)現(xiàn)LED流水燈

1:接線

2:編寫(xiě)流水燈功能代碼,在單片機(jī)中是無(wú)法使用二進(jìn)制直接進(jìn)行控制的因此我們需要使用16進(jìn)制的方式控制單片機(jī)進(jìn)行工作。

#include "stm32f10x.h"    // Device header
#include "Delay.h"/*1: 操作GPIO 1: 使用rcc開(kāi)啟gpio時(shí)鐘2: 使用GPIO_Init函數(shù)初始化GPIO3: 使用輸入或輸出函數(shù)控制GPIO口*/   	 
int main(void){// 開(kāi)啟GPIOA時(shí)鐘,該程序連接的是GPIOA的端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);// GPIO的結(jié)構(gòu)體GPIO_InitTypeDef GPIO_InitStructure;// 選擇輸出模式為推挽輸出PP表示的是推挽輸出模式,OD表示開(kāi)漏輸出模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 選擇輸出的引腳,GPIO_Pin_All將16個(gè)端口都設(shè)置為推挽輸出模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;// 輸出速度GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;// GPIO初始化結(jié)構(gòu)體的地址放到GPIO——Init的第二個(gè)參數(shù)GPIO_Init(GPIOA,&GPIO_InitStructure); while(1){//控制A號(hào)引腳GPIO_Write(GPIOA,~0x0001); // 0000 0000 0000 0001 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0002); // 0000 0000 0000 0010 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0004); // 0000 0000 0000 0100 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0008); // 0000 0000 0000 1000 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0010); // 0000 0000 0001 0000 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0020); // 0000 0000 0010 0000 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0040); // 0000 0000 0100 0000 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);GPIO_Write(GPIOA,~0x0080); // 0000 0000 1000 0000 二進(jìn)制轉(zhuǎn)換為16進(jìn)制的寫(xiě)法Delay_ms(500);}}

實(shí)現(xiàn)蜂鳴器功能:

蜂鳴器接線,使用最小系統(tǒng)班3根公對(duì)母的杜邦線完成蜂鳴器的接線工作

#include "stm32f10x.h"    // Device header
#include "Delay.h"/*1: 操作GPIO 1: 使用rcc開(kāi)啟gpio時(shí)鐘2: 使用GPIO_Init函數(shù)初始化GPIO3: 使用輸入或輸出函數(shù)控制GPIO口*/   	 
int main(void){// 開(kāi)啟GPIOA時(shí)鐘,該程序連接的是GPIOA的端口RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);// GPIO的結(jié)構(gòu)體GPIO_InitTypeDef GPIO_InitStructure;// 選擇輸出模式為推挽輸出PP表示的是推挽輸出模式,OD表示開(kāi)漏輸出模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 選擇輸出的引腳,GPIO_Pin_All將16個(gè)端口都設(shè)置為推挽輸出模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;// 輸出速度GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;// GPIO初始化結(jié)構(gòu)體的地址放到GPIO——Init的第二個(gè)參數(shù)GPIO_Init(GPIOB,&GPIO_InitStructure); while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_12);Delay_ms(100);GPIO_SetBits(GPIOB,GPIO_Pin_12);Delay_ms(100);GPIO_ResetBits(GPIOB,GPIO_Pin_12);Delay_ms(100);GPIO_SetBits(GPIOB,GPIO_Pin_12);Delay_ms(700);}}

將程序運(yùn)行并下載進(jìn)STM32系統(tǒng)班中完成蜂鳴器發(fā)聲功能。

庫(kù)函數(shù)使用方式

第一種方式,打開(kāi)頭文件,拉到最下面,查看有哪些函數(shù),然后查看函數(shù)的定義函數(shù)的使用方法,<建議使用這種方式>

第二種方式,查看庫(kù)函數(shù)用戶手冊(cè),所有函數(shù)的介紹個(gè)使用方法

第三種方式,最后一種方式是百度,借助別人的代碼進(jìn)行使用

http://www.risenshineclean.com/news/6322.html

相關(guān)文章:

  • 專門(mén)做布料的網(wǎng)站外貿(mào)接單平臺(tái)哪個(gè)最好
  • 網(wǎng)站后臺(tái)的用戶名谷歌搜索引擎為什么國(guó)內(nèi)用不了
  • ubuntu做網(wǎng)站服務(wù)器樂(lè)陵seo外包公司
  • 網(wǎng)絡(luò)營(yíng)銷(xiāo)外包是干啥的南寧seo團(tuán)隊(duì)哪家好
  • 河南省新聞出版學(xué)校怎么樣全網(wǎng)優(yōu)化哪家好
  • 網(wǎng)站系統(tǒng)重要性長(zhǎng)沙百度網(wǎng)站優(yōu)化
  • 網(wǎng)站建設(shè) 源美設(shè)計(jì)seo合作代理
  • 織夢(mèng)手機(jī)網(wǎng)站模板上海百度推廣官網(wǎng)
  • ps做網(wǎng)站的效果圖網(wǎng)絡(luò)銷(xiāo)售掙錢(qián)嗎
  • node.js做企業(yè)網(wǎng)站seo的優(yōu)化方案
  • 怎么看網(wǎng)站做的外鏈百度app客服人工在線咨詢
  • 做網(wǎng)站推廣多少錢(qián)黑帽seo聯(lián)系方式
  • 怎么用ps做網(wǎng)站首頁(yè)關(guān)鍵詞排名方案
  • 河南省住房城鄉(xiāng)建設(shè)廳官方網(wǎng)站window優(yōu)化大師
  • 自己建網(wǎng)站的費(fèi)用百度搜索收錄入口
  • 國(guó)外網(wǎng)站空間租用費(fèi)用站長(zhǎng)工具seo綜合查詢廣告
  • 泰州網(wǎng)站開(kāi)發(fā)搜索引擎搜索
  • 廣州做企業(yè)網(wǎng)站找哪家公司好熱點(diǎn)新聞事件素材
  • 貴安新區(qū)網(wǎng)站建設(shè)地推一手項(xiàng)目平臺(tái)
  • 政府部門(mén)建設(shè)網(wǎng)站的必要性東營(yíng)百度推廣公司
  • 網(wǎng)站建設(shè)專業(yè)品牌行業(yè)關(guān)鍵詞搜索排名
  • 企業(yè)網(wǎng)站seo策略關(guān)鍵詞優(yōu)化排名網(wǎng)站
  • 家居建材網(wǎng)站源碼seo 優(yōu)化案例
  • 在豬八戒網(wǎng)站如何做兼職谷歌seo服務(wù)商
  • 南通企業(yè)網(wǎng)站有哪些推廣普通話活動(dòng)方案
  • 網(wǎng)站建設(shè)南陽(yáng)有沒(méi)有免費(fèi)的推廣網(wǎng)站
  • wordpress常見(jiàn)的15個(gè)問(wèn)題鄭州seo優(yōu)化外包公司
  • 蘇州公司做網(wǎng)站qq關(guān)鍵詞排名優(yōu)化
  • 山東一建建設(shè)有限公司網(wǎng)站什么是企業(yè)營(yíng)銷(xiāo)型網(wǎng)站
  • 呼和浩特市建設(shè)委員會(huì)官方網(wǎng)站網(wǎng)站建設(shè)需求模板