大老张1
获得 1 次赞
帮助过0人
怎样用STC89C52RC单片机产生方波,并且可以对方波频率进行程控,产生频率为2khz整数倍的方波,求大家帮忙,最好有程序,万分感谢!
把陀螺仪静止不动,先读出偏移值。然后每10ms读一次X轴的(角速度值 - 偏移值)并一直累加。几分钟下来,偏了几十度。请问:这个不准确的结果,是什么原因造成的?
#include "stm32f10x.h" void gpio_init()//PA0为外部中断触发脚,PA2控制led{ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_ResetBits(GPIOA , GPIO_Pin_2);}void EXTI_init()//PA0与EXTI_Line0连通{ EXTI_InitTypeDef EXTI_InitStructure; GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); // 管脚选择 EXTI_ClearITPendingBit(EXTI_Line0); EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;// EXTI_Trigger_Rising EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); }void NVIC_Config(void){ NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = EXTI_Line0; //通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;// NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);}int main(void) { gpio_init(); EXTI_init(); NVIC_Config(); while(1);} void EXTI0_IRQHandler(void) { if( EXTI_GetITStatus(EXTI_Line0) != RESET ) { EXTI_ClearITPendingBit(EXTI_Line0); GPIO_SetBits(GPIOA , GPIO_Pin_2); } } 这是中断服务函数,我硬件仿真过,进不来为什么外部中断服务函数进不去呢?