DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
基于STM32F303双电机FOC驱动: 无感原理图/BOM表/代码等开源...
stm32cube_pwm配置
stm32f334驱动1.69寸SPI LED屏
stm32f334c8t6实现一个简单的温度湿度检测器
stm32f334温度湿度显示器开发板
stm32f334_硬件IIC跑u8g2移植步骤
详解STM32单片机的堆栈
stm32f334_第二十三章基础定时器6/7非中断方式单次触发
stm32f334_IIC通信点亮0.96OLED
微信公众号
手机版
#define uint unsigned int
#define uchar unsigned char
uint i,j,k;
uchar h=0;
void NVIC_Configuration ();
void GPIO_Configuration ();
int main()
{
GPIO_Configuration ();
NVIC_Configuration ();
GPIO_SetBits(GPIOA, GPIO_Pin_5);
while(1)
{
}
}
void NVIC_Configuration (void)
{
NVIC_InitTypeDef NVIC_Initstructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_Initstructure.NVIC_IRQChannel=EXTI15_10_IRQn;
NVIC_Initstructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_Initstructure.NVIC_IRQChannelSubPriority=0;
NVIC_Initstructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_Initstructure);
}
void GPIO_Configuration (void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA|RCC_AHBPeriph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
//GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOC,&GPIO_InitStructure);
//GPIO_PinAFConfig(GPIOC, GPIO_PinSource13, GPIO_AF);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
//GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
EXTI_InitStructure.EXTI_Line = EXTI_Line13;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
下面是中断服务函数 放在it.c中
void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line13)==1)
{
GPIO_WriteBit(GPIOA,GPIO_Pin_5,(BitAction)((1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_5))));
EXTI_ClearFlag(EXTI_Line13);
}
}
keil+cubeMX,也可以只用keil,当然也可以IAR如果你习惯的话