新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2026-3-17
- 在线时间
- 2 小时
|
1金钱
我准备写一个外部触发中断控制led的亮灭,有问题,我之后又想着用P0口的led闪烁测试,按理说resetbit输出0,setbit输出1,结果测量3.3三伏口和P0口之间的电压都是三伏。我用推挽模式。
想问问大佬是什么问题?
#include "stm32f10x.h"
#include "Delay.h"
int main()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef gpioinit;
gpioinit.GPIO_Mode=GPIO_Mode_Out_PP;
gpioinit.GPIO_Pin=GPIO_Pin_0;
gpioinit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&gpioinit);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef gpiob;
gpiob.GPIO_Mode=GPIO_Mode_IPU;
gpiob.GPIO_Pin=GPIO_Pin_14;
gpiob.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&gpiob);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14);
EXTI_InitTypeDef exit;
exit.EXTI_Line=EXTI_Line14;
exit.EXTI_LineCmd=ENABLE;
exit.EXTI_Mode=EXTI_Mode_Interrupt;
exit.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_Init(&exit);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitTypeDef nvic;
nvic.NVIC_IRQChannel=EXTI15_10_IRQn;
nvic.NVIC_IRQChannelCmd=ENABLE;
nvic.NVIC_IRQChannelPreemptionPriority=1;
nvic.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&nvic);
while(1){
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
Delay_s(10);
GPIO_SetBits(GPIOA,GPIO_Pin_0);
}
}
/*void EXTI15_10_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line14)==SET){
GPIO_SetBits(GPIOA,GPIO_Pin_0);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
Delay_ms(100);
GPIO_SetBits(GPIOA,GPIO_Pin_5);
}
EXTI_ClearITPendingBit(EXTI_Line14);
}*/
|
|