这是程序,,很简单的一个程序,编译出来的结果没有错误也没有警告,就是不好使,,,
#include"stm32f10x.h"
void RCC_SET()
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus=RCC_WaitForHSEStartUp();
if(HSEStartUpStatus==SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
FLASH_SetLatency(FLASH_Latency_2);
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource()!=0x08);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
}
}
void GPIO_SET()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}
void NVIC_SET()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_SetVectorTable(NVIC_VectTab_RAM,0X0);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void EXTI_SET()
{
EXTI_InitTypeDef EXTI_InitStructure;
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3);
EXTI_ClearITPendingBit(EXTI_Line3);
EXTI_InitStructure.EXTI_Line=EXTI_Line3;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
void EXTI3_IRQHandler(void)
{
GPIO_Write(GPIOB,0XFFFF);
}
int main(void)
{
RCC_SET();
GPIO_SET();
EXTI_SET();
NVIC_SET();
GPIO_Write(GPIOB,0X0000);
while(1);
}
不是,,我程序里有这个函数
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3),,不是这个问题。我设置为下降沿触发EXTI_Trigger_Falling,
我确定程序在进入中断之前是没有问题的,引脚的连接也没有错误,我做了测试的的,,程序上的GPIOB_ALL是用来测试用的
追答看不出来哎,要么你换个管脚试试
stm32为什么进入不了中断呢,,,我找了个例程,就差点把例程照扒下来了,还...
这个函数不要忘了调用。因为每个引脚都可以用作外部中断口,而PA3\\PB3\\PC3\\PD3\\PE3\\PF3\\PG3共用一条外部中断线,所以必须给中断线分配一个引脚。另外在中断函数中还要查询标志位和清除中断。如下所示:void EXTI15_10_IRQHandler(void){ if(EXTI_GetITStatus(EXTI_Line10) != RESET){ \/\/PE...
stm32不能进入串口收中断,求解答
首先,用示波器看下rx管脚上有没有波形。若有的话就是程序编写初始化有问题了 。按照STM32表函数库进行编程。调用他们库的函数来实现USART的接收中断。多看下库函数的例程就能解决。或者你把你的程序贴出来我帮你看下。注意管脚配置和时钟使能,中断使能,NVIC函数等都要配置。
STM32串口通讯为什么一直不能进入中断
也可能是因为硬件上直接就没有看到波形导致的 STM32的例程看了没有问题。初始化配置好了能进串口中断的。
STM32F的CAN中断始终进不去,参考了前辈的程序,还是进不去
肯定 可以进。ST官方有CAN应用例程,你直接使用LOOP MODE进行测试。无非是些CAN配置、中断配置方面的问题。
STM32 v3固件库编写SYSTICK,不报错,不进入中断,请大牛指点!
在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的全部函数。SysTick_Config(uint32_t ticks);该函数设置了自动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开始计数并打开SysTick ...
stm32进入不了main函数,求助一下
首先保证程序是否正常了,这个可以找个可行的例程验证下。程序如果不正常运行,导致频繁中断甚至进入硬错,也会进入不了 main(),代码好好检查下。
我想用stm32的DMA方式接收SPI接收到的数据,但是配置完了以后进入不了D...
进入在线调试试试看,先建立一个存放SPI数据的变量,看看有没有数据;还可以在DMA中断函数设置一个FLAG,如果进入中断置1否则为0;如果是0的话确实没有进中断,那要看看你的配置了,对照例子再仔细看看吧!
stm32 学习以及看门狗你大概是在哪里用的呢,看了个例程还是不太明白使...
比如堆栈溢出或者中断嵌套时卡死。(大量中断嵌套处理不好很容易互相影响卡死)在这种情况下使用看门狗,一旦过了一段时间还没有喂狗则判断程序卡死,自动复位。以上是标准使用模式,当然也许还有其他用处。学STM32完全自学,不仅都没有老师教,连和我一起学习的同学都没有。实际也证明自学足以。我就靠正点...
stm32的开发板在keil4里运行例程都没问题 但我想查看调用程序的源文件时...
你确定你编译通过了?
AM2301我根据51例程改成STM32的,但是我读出来的数据总是不稳定,而且总...
可以认定是99%的概率是你的问题,而不是半残的意法半导体