国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

CountSensor學習注釋22/8/10學習打卡

2022-08-10 22:38 作者:傅李耶  | 我要投稿

CountSensor.c

#include "stm32f10x.h"? ? ? ? ? ? ? ? ? // Device header

//涉及中斷

uint16_t CountSensor_Count;


//配置中斷,外部中斷信號從GPIO到AFIO,再到EXTI,再到NVIC,最后到CPU

void CountSensor_Init(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//RCC開啟GPIO時鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//開啟AFIO的時鐘

//EXTI和NVIC的時鐘是一直打開的

//配置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);//初始化GPIOB外設

//配置AFIO外部中斷引腳選擇

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource14);//采用PB14引腳

//GPIO_EXTILineConfig()雖然以GPIO開頭但為AFIO的函數

//配置EXTI外設

/*配置為將EXTI的第14個線路配置為中斷模式

選中的線路開啟中斷,下降沿觸發(fā)

PB14的電平信號通過EXTI通向下一級NVIC

? ? ? ?*/

EXTI_InitTypeDef EXTI_InitStructure;//定義結構體

EXTI_InitStructure.EXTI_Line = EXTI_Line14; //需要PB14所在的線路故為Line14

EXTI_InitStructure.EXTI_LineCmd = ENABLE;//指定選中線的新狀態(tài)

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

//可以是中斷模式(_Interrupt)或事件模式(_Event)

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

//指定觸發(fā)信號的有效邊沿,EXTI_Trigger_Rising上升沿觸發(fā),EXTI_Trigger_Falling下降沿觸發(fā)

//EXTI_Trigger_Rising_Falling上升沿和下降沿均觸發(fā)

EXTI_Init(&EXTI_InitStructure);

//配置NVIC

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//函數指定中斷分組,整個芯片只能采用一種分組

//(NVIC_PriorityGroup_2)兩位搶占中斷,兩位響應中斷

NVIC_InitTypeDef NVIC_InitStructure;//定義結構體,結構體名為NVIC_InitStructure

NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_Init(&NVIC_InitStructure);//將地址放入函數,&為取地址符號

}


uint16_t CountSensor_Get(void)

{

return CountSensor_Count;

}

/**

* 中斷函數(均無參數、無返回值)名稱是固定的,可從啟動文件中直接復制而來

若名稱錯誤則無法進入中斷

? ?*/

void EXTI15_10_IRQHandler(void)//此中斷EXTI10`EXTI15均能進入

{

if (EXTI_GetITStatus(EXTI_Line14) == SET)//中斷標志位判斷,確保為想要的中斷源(EXTI14)觸發(fā)該函數

//EXTI_GetITStatus()返回值為SET或者RESET

{

/*如果出現數據亂跳的現象,可再次判斷引腳電平,以避免抖動*/

if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14) == 0)

{

CountSensor_Count ++;//采用的是下降沿觸發(fā)的方式,在紙片移開時會++

}

EXTI_ClearITPendingBit(EXTI_Line14);//清除中斷標志位函數

/*只有當中斷標志位 置1,程序就跳轉到中斷函數,若不清除中斷標志位,則會一直申請中斷*/

}

}

CountSensor.h

#ifndef __COUNT_SENSOR_H

#define __COUNT_SENSOR_H


void CountSensor_Init(void);

uint16_t CountSensor_Get(void);


#endif


CountSensor學習注釋22/8/10學習打卡的評論 (共 條)

分享到微博請遵守國家法律
鄢陵县| 大丰市| 平和县| 鄯善县| 拉萨市| 历史| 罗平县| 汉川市| 绩溪县| 锡林郭勒盟| 镇远县| 平顶山市| 阿荣旗| 蓝山县| 宿松县| 原平市| 纳雍县| 舟山市| 乌拉特中旗| 海原县| 康保县| 铜梁县| 晋城| 五寨县| 望江县| 靖西县| 蛟河市| 贺州市| 双桥区| 汽车| 永宁县| 芜湖县| 资兴市| 轮台县| 宁德市| 谷城县| 米林县| 朔州市| 靖江市| 安福县| 大田县|