未来星辰

    1. ienglgge 发表于 2017-10-9 13:39 整个程序有马上重新初始化? 是不是 重启了。有没有打开看门狗。看看执行到什么地方出的问题。
      打开看门狗了的  我己感觉有可能是中断初始化的问题 因为有一个端口是给无线用的  这部分的程序不是我写的 另外一个端口是做电压检测用的 下面是程序 void Init_EXTI(void) //这是作为检测电压用的中断初始化 {     EXTI_DeInit();     GPIO_Init(GPIOE,GPIO_Pin_7,GPIO_Mode_In_FL_IT);//设置PE7为浮空输入中断模式         EXTI_SetPinSensitivity (EXTI_Pin_7,EXTI_Trigger_Rising);//选择PE7为外部中断敏感信号     EXTI_SelectPort(EXTI_Port_E);     //    ITC_SetSoftwarePriority(EXTI3_IRQn,ITC_PriorityLevel_1);//设置中断优先级 //    GPIO_ExternalPullUpConfig(GPIOE, GPIO_Pin_7, ENABLE);         //上拉    //   EXTI_ClearITPendingBit (EXTI_IT_Pin7);//清中断标志位 //  GPIO_ResetBits(Relay_RW_PORT,Relay_RW_PORT_BIT);     } INTERRUPT_HANDLER(EXTI7_IRQHandler,15) //这是作为检测电压用的中断 {         EXTI_ClearITPendingBit(EXTI_IT_Pin7);     if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7))     {       delay(200);       if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7))       {         GPIO_ResetBits(LED_RW_PORT,LED_RW_PORT_BIT);         delay(5000);         GPIO_SetBits(LED_RW_PORT,LED_RW_PORT_BIT);       }     }     //Relay_Closed();     flag = 1;     EXTI_ClearITPendingBit(EXTI_IT_Pin7);     } //这是无线的中断 INTERRUPT_HANDLER(EXTI4_IRQHandler,12)   //PC0中断  RF_GDO0; {     EXTI_ClearITPendingBit(EXTI_IT_Pin4);        SX127X_LoRaRxPacket(g_ucRTxBuff);     EXTI_ClearITPendingBit(EXTI_IT_Pin4);    //清除我待处理的部分       flag = 1; } //下面是 无线部分 void Sx127xInitHard(void) {     uint8_t registerValue;   GPIO_Init(SX1278_TXE_PORT, SX1278_TXE_PIN, GPIO_Mode_Out_PP_High_Slow);   GPIO_ResetBits(SX1278_TXE_PORT, SX1278_TXE_PIN);      GPIO_Init(SX1278_RXE_PORT, SX1278_RXE_PIN, GPIO_Mode_Out_PP_High_Slow);   GPIO_SetBits(SX1278_RXE_PORT, SX1278_RXE_PIN);    //REST REST输出置低 //    SX1278_REST_ANS = 0; //    SX1278_REST_PIN = 0; //    SX1278_REST_DIR = 0;   GPIO_Init(SX1278_RST_PORT, SX1278_RST_PIN, GPIO_Mode_Out_PP_High_Slow);   GPIO_ResetBits(SX1278_RST_PORT, SX1278_RST_PIN);   //CSN CSN输出置高 //    SX1278_CSN_ANS = 0; //    SX1278_CSN_PIN = 1; //    SX1278_CSN_DIR = 0;   GPIO_Init(SX1278_SCS_PORT, SX1278_SCS_PIN, GPIO_Mode_Out_PP_High_Slow);   GPIO_SetBits(SX1278_SCS_PORT, SX1278_SCS_PIN);    //SCLK SCLK输出置低 //    SX1278_SCLK_ANS = 0; //    SX1278_SCLK_PIN = 0; //    SX1278_SCLK_DIR = 0;   GPIO_Init(SX1278_SCK_PORT, SX1278_SCK_PIN, GPIO_Mode_Out_PP_High_Slow);   GPIO_ResetBits(SX1278_SCK_PORT, SX1278_SCK_PIN);    //MOSI MOSI输出置高 //    SX1278_MOSI_ANS = 0; //    SX1278_MOSI_PIN = 1; //    SX1278_MOSI_DIR = 0;   GPIO_Init(SX1278_MOSI_PORT, SX1278_MOSI_PIN, GPIO_Mode_Out_PP_High_Slow);   GPIO_SetBits(SX1278_MOSI_PORT, SX1278_MOSI_PIN);    //MISO MISO输入 //    SX1278_MISO_ANS = 0; //    SX1278_MISO_DIR = 1;   SX1278_MISO_MI;   //开启SX127x电源   GPIO_Init(GPIOA, BIT3, GPIO_Mode_Out_PP_High_Slow);   GPIO_ResetBits(GPIOA, BIT3);         //SX1278_POWER_ON();     __delay_ms(10); //电源稳定时间 //sx127x REST引脚正常工作     //SX1278_REST_PIN = 1;     SX1278_RST_H;     __delay_ms(10); //不低于10ms //IRQ IRQ输入 //    SX1278_IRQ_ANS = 0; //    SX1278_IRQ_DIR = 1;     GPIO_Init(SX1278_INT_PORT, SX1278_INT_PIN, GPIO_Mode_In_FL_IT); //  GPIO_Init(SX1278_INT_PORT, SX1278_INT_PIN, GPIO_Mode_In_FL_No_IT);   EXTI_SetPinSensitivity(EXTI_Pin_4,EXTI_Trigger_Rising);     registerValue = SpiReadOneRegister(LR_RegFrMsb);     SpiWriteOneRegister(LR_RegOpMode,registerValue);     SpiWriteOneRegister(LR_RegOpMode,MODE_SLEEP); //进入Sleep模式. }
    2. ienglgge 发表于 2016-11-23 22:42 定时器中断就可以,根据读的io的状态,确定是否翻转输出端io。输出时,比如,中断10次,翻转一次io,记录中 ...
      翻转io口?能说的具体点不
    3. liaoyuanhong 发表于 2016-11-23 10:29 51的我有一个汇编程序。好久好久以前写的了。时间差很小。只能用汇编写了。其实这个很简单了。你检测到一个 ...
      我试过的,中断里的没执行,P1.2和P1.3用的开关
    4. 李小川希比 发表于 2016-10-12 11:26 太长了点吧
      我主要想问问液晶1602部分哪里死了
    5. EE_FPGA基础教程系列 -- NO.1--Quartus II的安装V1.0 21/14340 EE_FPGA学习乐园 2016-03-04
      :congratulate:
    6. Proteus 8.3sp2及绿色版 972/94870 单片机 2016-03-01
      试一试

最近访客

< 1/1 >

统计信息

已有2人来访过

  • 芯积分:--
  • 好友:--
  • 主题:7
  • 回复:6

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言