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

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

穹拓做網(wǎng)站站長(zhǎng)工具seo查詢

穹拓做網(wǎng)站,站長(zhǎng)工具seo查詢,做好網(wǎng)站外鏈建設(shè)的最新方法,安慶網(wǎng)站建設(shè)嵌入式學(xué)習(xí)_part2 本部分筆記用于學(xué)習(xí)記錄,筆記源頭 >>b站江科大_STM32入門教程_EXTI EXTI、ADC、NVIC和AFIO 開發(fā)環(huán)境:keil MDK、STM32F103C8T6 1 )EXTI STM32F10xxx參考手冊(cè)(中文)-> 中斷與事件 ->…

嵌入式學(xué)習(xí)_part2

本部分筆記用于學(xué)習(xí)記錄,筆記源頭 >>b站江科大_STM32入門教程_EXTI

EXTI、ADC、NVIC和AFIO

開發(fā)環(huán)境:keil MDK、STM32F103C8T6

1 )EXTI

STM32F10xxx參考手冊(cè)(中文)-> 中斷與事件 -> 中斷異常向量表<1>:CPU運(yùn)行主程序,當(dāng) “異常/中斷” 產(chǎn)生時(shí),硬件自動(dòng)跳轉(zhuǎn)到中斷向量表的地址去執(zhí)行相關(guān)程序;

在這里插入圖片描述

STM32F10xxx參考手冊(cè)(中文)-> 中斷與事件 -> 外部中斷/事件線路映像<1>:支持所有的GPIO口,但是不能使用相同的Pin,AFIO來連接到EXTI(數(shù)據(jù)選擇器);<2>:AFIO的作用,中斷引腳的選擇(數(shù)據(jù)選擇器)、復(fù)用功能的重映射;<3>:EXTI9~5、EXTI10~15,分配在一個(gè)通道;<4>:EXTI0~15,用于GPIO的0~15、EXTI線16連接到PVD輸出、 EXTI線17連接到RTC鬧鐘事件、EXTI線18連接到USB喚醒事件、EXTI線19連接到以太網(wǎng)喚醒事件(只適用于互聯(lián)型產(chǎn)品);

在這里插入圖片描述

STM32F10xxx參考手冊(cè)(中文)-> 中斷與事件 -> EXTI結(jié)構(gòu)框圖

在這里插入圖片描述

2 )NVIC(內(nèi)核外設(shè))

NVIC_搶占優(yōu)先級(jí) / 響應(yīng)優(yōu)先級(jí)

搶占優(yōu)先級(jí):搶占優(yōu)先級(jí)高的,用于中斷嵌套
響應(yīng)優(yōu)先級(jí):"排隊(duì)",響應(yīng)優(yōu)先級(jí)相同的,按照 "向量表" 序號(hào)排隊(duì);

在這里插入圖片描述

3)外部中斷的代碼實(shí)現(xiàn)

GPIO、RCC、NVIC、EXTI、AFIO

1.基本框架

在這里插入圖片描述

2.代碼部分

1.開啟時(shí)鐘
/*開啟時(shí)鐘*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//開啟GPIOB的時(shí)鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);		//開啟AFIO的時(shí)鐘,外部中斷必須開啟AFIO的時(shí)鐘
2.GPIO配置
關(guān)于GPIO的輸入模式,GPIO_Mode = GPIO_Mode_IPUGPIO的輸入配置:STM32F10xxx參考手冊(cè)(中文)-> 8.1.11 外設(shè)的GPIO配置
	/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);						//將PB14引腳初始化為上拉輸入
3.AFIO設(shè)置
AFIO的功能:1.EXTI的數(shù)據(jù)選擇器;2.引腳功能的重映射;AFIO相關(guān)的函數(shù)和GPIO的函數(shù)都放在 -> stm32f10x_gpio.h
//配置AFIO事件輸出功能
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);
//配置AFIO的數(shù)據(jù)選擇器,來選擇我們想要的中斷引腳
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
//以太網(wǎng)有關(guān)
void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);
 stm32f10x_gpio.c -> GPIO_EXTILineConfig()里面實(shí)際的在操作AFIO的相關(guān)寄存器
/*** @brief  Selects the GPIO pin used as EXTI Line.* @param  GPIO_PortSource: selects the GPIO port to be used as source for EXTI lines.*   This parameter can be GPIO_PortSourceGPIOx where x can be (A..G).* @param  GPIO_PinSource: specifies the EXTI line to be configured.*   This parameter can be GPIO_PinSourcex where x can be (0..15).* @retval None*/
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
{uint32_t tmp = 0x00;/* Check the parameters */assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03));AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)));
}
 這里我們進(jìn)行配置:PB14 -> EXTI_LINE14
	/*AFIO選擇中斷引腳*/GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource14);//將外部中斷的14號(hào)線映射到GPIOB,即選擇PB14為外部中斷引腳
4.EXTI & NVIC
	//狀態(tài)標(biāo)志位,主函數(shù)里面用FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);void EXTI_ClearFlag(uint32_t EXTI_Line);//中斷相關(guān)的狀態(tài)標(biāo)志位,中斷函數(shù)里面用ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
	/*EXTI初始化*/EXTI_InitTypeDef EXTI_InitStructure;						//定義結(jié)構(gòu)體變量EXTI_InitStructure.EXTI_Line = EXTI_Line14;					//選擇配置外部中斷的14號(hào)線EXTI_InitStructure.EXTI_LineCmd = ENABLE;					//指定外部中斷線使能EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;			//指定外部中斷線為中斷模式EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;		//指定外部中斷線為下降沿觸發(fā)EXTI_Init(&EXTI_InitStructure);								//將結(jié)構(gòu)體變量交給EXTI_Init,配置EXTI外設(shè)/*NVIC中斷分組*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);				//配置NVIC為分組2//即搶占優(yōu)先級(jí)范圍:0~3,響應(yīng)優(yōu)先級(jí)范圍:0~3//此分組配置在整個(gè)工程中僅需調(diào)用一次//若有多個(gè)中斷,可以把此代碼放在main函數(shù)內(nèi),while循環(huán)之前//若調(diào)用多次配置分組的代碼,則后執(zhí)行的配置會(huì)覆蓋先執(zhí)行的配置/*NVIC配置*/NVIC_InitTypeDef NVIC_InitStructure;						//定義結(jié)構(gòu)體變量NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;		//選擇配置NVIC的EXTI15_10線NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;				//指定NVIC線路使能NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;	//指定NVIC線路的搶占優(yōu)先級(jí)為1NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;			//指定NVIC線路的響應(yīng)優(yōu)先級(jí)為1NVIC_Init(&NVIC_InitStructure);								//將結(jié)構(gòu)體變量交給NVIC_Init,配置NVIC外設(shè)
5.中斷函數(shù)
startup_stm32f10x_md.s -> 中斷向量表 - >ST寫好了指定的中斷處理 "接口" 函數(shù)
void EXTI15_10_IRQHandler(void)
{if (EXTI_GetITStatus(EXTI_Line14) == SET)		//判斷是否是外部中斷14號(hào)線觸發(fā)的中斷{//這里寫你的執(zhí)行邏輯	EXTI_ClearITPendingBit(EXTI_Line14);		//清除外部中斷14號(hào)線的中斷標(biāo)志位//中斷標(biāo)志位必須清除//否則中斷將連續(xù)不斷地觸發(fā),導(dǎo)致主程序卡死}
}

4 )ADC

b站江科大_STM32入門教程_ADC

1.ADC基本框架

 ADC:模擬-數(shù)字轉(zhuǎn)換器;<1>: 12位逐次逼近型ADC,1μs的轉(zhuǎn)換時(shí)間;<2>: 輸入電壓值范圍0~3.3v,由參考電壓Vref+ ~ Vref- 決定;<3>: 轉(zhuǎn)化結(jié)構(gòu)范圍0~4095,由ADC位數(shù)決定;<4>: 用于"轉(zhuǎn)換"的輸入通道(18個(gè)),16個(gè)外部通道(GPIO端口),2個(gè)內(nèi)部通道;<5>: 觸發(fā)ADC轉(zhuǎn)換的方式:1. TIM通道;2.軟件觸發(fā)(函數(shù)調(diào)用);3.EXTI;<6>: 轉(zhuǎn)化單元:規(guī)則組和注入組;1.規(guī)則組:可以一次轉(zhuǎn)換16個(gè)通道的結(jié)果(16bit),但是規(guī)則組轉(zhuǎn)換結(jié)果寄存器只有16bit,也就是只能存放一個(gè)通道的結(jié)果;2.注入組:可以一次轉(zhuǎn)換4個(gè)通道的結(jié)果(16bit),注入組轉(zhuǎn)換結(jié)果寄存器有4×16bit,也就是可以存放4個(gè)通道的結(jié)果;<7>: 閾值"看門狗":監(jiān)測(cè)ADC轉(zhuǎn)換電壓;1.可以設(shè)置 "閾值" ,連接NVIC,進(jìn)行函數(shù)處理;<8>: 規(guī)則組 / 注入組,轉(zhuǎn)化結(jié)構(gòu)結(jié)束時(shí),也可連接NVIC,進(jìn)行中斷函數(shù)處理;<9>: ADC的處理時(shí)鐘來源于APB2的預(yù)分頻(2、4、6、8) ,最大14Mhz;可以看,STM32F10xxx參考手冊(cè)(中文)-> 6.2時(shí)鐘 -> 圖8:時(shí)鐘樹;<10>: STM32F103C8T6 ADC資源,ADC1、ADC2,10個(gè)外部輸入通道(GPIO);

在這里插入圖片描述
在這里插入圖片描述

2.逐次逼近型ADC

該類型的ADC與STM32 ADC原理一致;
通過"2分法",逐次比較電壓值,通過比較器進(jìn)行比較;

在這里插入圖片描述

3.代碼部分

1.結(jié)構(gòu)框圖

在這里插入圖片描述

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

相關(guān)文章:

  • 網(wǎng)站建設(shè)成本價(jià)瀏覽器看b站
  • 合肥知名網(wǎng)站制作新聞?lì)^條最新消息今天
  • 桂林網(wǎng)站建設(shè)凡森網(wǎng)絡(luò)網(wǎng)絡(luò)推廣用什么軟件好
  • wordpress 主題 修改鄭州seo哪家好
  • 寧波網(wǎng)絡(luò)推廣制作seo是哪里
  • 沈陽網(wǎng)站seo排名優(yōu)化愛網(wǎng)站關(guān)鍵詞查詢工具
  • 網(wǎng)站模版建站免費(fèi)引流人脈推廣軟件
  • 網(wǎng)站被降權(quán)的原因怎么知道網(wǎng)站有沒有被收錄
  • 做網(wǎng)站業(yè)務(wù)員怎么樣烘焙甜點(diǎn)培訓(xùn)學(xué)校
  • 電商視覺設(shè)計(jì)網(wǎng)站批量?jī)?yōu)化網(wǎng)站軟件
  • 外國做營銷方案的網(wǎng)站360建站和凡科哪個(gè)好
  • 建設(shè)銀行北京東四支行網(wǎng)站愛站網(wǎng)關(guān)鍵詞排名
  • 網(wǎng)站建設(shè)下什么科目武漢seo搜索引擎優(yōu)化
  • 慈溪做無痛同濟(jì) 網(wǎng)站北京最新疫情情況
  • 寧夏網(wǎng)站設(shè)計(jì)聯(lián)系電話推廣公司屬于什么公司
  • 合肥做網(wǎng)站多少錢資源網(wǎng)
  • wordpress sozo西安關(guān)鍵詞seo公司
  • 做網(wǎng)站銷售的技巧關(guān)鍵詞排名優(yōu)化教程
  • 電子商務(wù)網(wǎng)站開發(fā)模塊流程圖網(wǎng)站建設(shè)優(yōu)化哪家公司好
  • 做技術(shù)分享網(wǎng)站有哪些手機(jī)軟文廣告300字
  • 建甌做網(wǎng)站的公司實(shí)時(shí)軍事熱點(diǎn)
  • 網(wǎng)站內(nèi)容設(shè)計(jì)要求網(wǎng)站seo的優(yōu)化怎么做
  • 如何創(chuàng)建自己的博客網(wǎng)站google store
  • 青島網(wǎng)站專業(yè)制作重慶關(guān)鍵詞排名首頁
  • 鄭州市人民政府網(wǎng)站網(wǎng)站seo方案案例
  • 怎么做58同城網(wǎng)站免費(fèi)建站哪個(gè)最好
  • 網(wǎng)站策劃做營銷推廣廣告營銷
  • 沈陽網(wǎng)站制作找網(wǎng)勢(shì)科技國際軍事新聞
  • wordpress加個(gè)留言板谷歌seo排名技巧
  • 學(xué)校響應(yīng)式網(wǎng)站模板網(wǎng)絡(luò)推廣有哪些途徑