国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

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

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

嵌入式學習_part2

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

EXTI、ADC、NVIC和AFIO

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

1 )EXTI

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

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

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

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

在這里插入圖片描述

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

GPIO、RCC、NVIC、EXTI、AFIO

1.基本框架

在這里插入圖片描述

2.代碼部分

1.開啟時鐘
/*開啟時鐘*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//開啟GPIOB的時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);		//開啟AFIO的時鐘,外部中斷必須開啟AFIO的時鐘
2.GPIO配置
關(guān)于GPIO的輸入模式,GPIO_Mode = GPIO_Mode_IPUGPIO的輸入配置:STM32F10xxx參考手冊(中文)-> 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()里面實際的在操作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)));
}
 這里我們進行配置:PB14 -> EXTI_LINE14
	/*AFIO選擇中斷引腳*/GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource14);//將外部中斷的14號線映射到GPIOB,即選擇PB14為外部中斷引腳
4.EXTI & NVIC
	//狀態(tài)標志位,主函數(shù)里面用FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);void EXTI_ClearFlag(uint32_t EXTI_Line);//中斷相關(guān)的狀態(tài)標志位,中斷函數(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號線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)先級范圍:0~3,響應(yīng)優(yōu)先級范圍:0~3//此分組配置在整個工程中僅需調(diào)用一次//若有多個中斷,可以把此代碼放在main函數(shù)內(nèi),while循環(huán)之前//若調(diào)用多次配置分組的代碼,則后執(zhí)行的配置會覆蓋先執(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)先級為1NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;			//指定NVIC線路的響應(yīng)優(yōu)先級為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號線觸發(fā)的中斷{//這里寫你的執(zhí)行邏輯	EXTI_ClearITPendingBit(EXTI_Line14);		//清除外部中斷14號線的中斷標志位//中斷標志位必須清除//否則中斷將連續(xù)不斷地觸發(fā),導致主程序卡死}
}

4 )ADC

b站江科大_STM32入門教程_ADC

1.ADC基本框架

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

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

2.逐次逼近型ADC

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

在這里插入圖片描述

3.代碼部分

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

在這里插入圖片描述

http://m.aloenet.com.cn/news/37770.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)成本價瀏覽器看b站
  • 合肥知名網(wǎng)站制作新聞頭條最新消息今天
  • 桂林網(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)站模版建站免費引流人脈推廣軟件
  • 網(wǎng)站被降權(quán)的原因怎么知道網(wǎng)站有沒有被收錄
  • 做網(wǎng)站業(yè)務(wù)員怎么樣烘焙甜點培訓學校
  • 電商視覺設(shè)計網(wǎng)站批量優(yōu)化網(wǎng)站軟件
  • 外國做營銷方案的網(wǎng)站360建站和凡科哪個好
  • 建設(shè)銀行北京東四支行網(wǎng)站愛站網(wǎng)關(guān)鍵詞排名
  • 網(wǎng)站建設(shè)下什么科目武漢seo搜索引擎優(yōu)化
  • 慈溪做無痛同濟 網(wǎng)站北京最新疫情情況
  • 寧夏網(wǎng)站設(shè)計聯(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)站有哪些手機軟文廣告300字
  • 建甌做網(wǎng)站的公司實時軍事熱點
  • 網(wǎng)站內(nèi)容設(shè)計要求網(wǎng)站seo的優(yōu)化怎么做
  • 如何創(chuàng)建自己的博客網(wǎng)站google store
  • 青島網(wǎng)站專業(yè)制作重慶關(guān)鍵詞排名首頁
  • 鄭州市人民政府網(wǎng)站網(wǎng)站seo方案案例
  • 怎么做58同城網(wǎng)站免費建站哪個最好
  • 網(wǎng)站策劃做營銷推廣廣告營銷
  • 沈陽網(wǎng)站制作找網(wǎng)勢科技國際軍事新聞
  • wordpress加個留言板谷歌seo排名技巧
  • 學校響應(yīng)式網(wǎng)站模板網(wǎng)絡(luò)推廣有哪些途徑