/****************************************Copyright (c)**************************************************** ** ** **--------------File Info--------------------------------------------------------------------------------- ** File name: main.c ** Descriptions: ** **-------------------------------------------------------------------------------------------------------- ** Created by: ** Created date: ** Version: ** Descriptions: ** **-------------------------------------------------------------------------------------------------------- ** Modified by: ** Modified date: ** Version: ** Descriptions: ** *********************************************************************************************************/ #define THIS_FILE_ID 1 /* Includes ------------------------------------------------------------------*/ #include "includes.h" //#define MODEM_LED1_PIN GPIO_Pin_12 //#define MODEM_LED1_PORT GPIOC //#define MODEM_LED2_PIN GPIO_Pin_2 //#define MODEM_LED2_PORT GPIOD //#define MODEM_LED1_HIGH (MODEM_LED1_PORT->BRR = MODEM_LED1_PIN) //S //#define MODEM_LED1_LOW (MODEM_LED1_PORT->BSRR = MODEM_LED1_PIN) //#define MODEM_LED2_HIGH (MODEM_LED2_PORT->BRR = MODEM_LED2_PIN) //#define MODEM_LED2_LOW (MODEM_LED2_PORT->BSRR = MODEM_LED2_PIN) //#ifdef __GNUC__ // /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf // set to 'Yes') calls __io_putchar() */ // #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) //#else // #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) //#endif /* __GNUC__ */ ///** // * @brief Retargets the C library printf function to the USART. // * @param None // * @retval None // */ //PUTCHAR_PROTOTYPE //{ // /* Place your implementation of fputc here */ // /* e.g. write a character to the USART */ // USART_SendData(USART1, (uint8_t) ch); // /* Loop until the end of transmission */ // while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) // { // // } // return ch; //} void RTC_EXTI_INITIAL() { NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //------------EXTI17 ?? ------------------- EXTI_InitStructure.EXTI_Line = EXTI_Line17; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); //------------ NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //------------------------------------------- } void MY_NVIC_Init() { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //选择中断分组2 //RunMake(THIS_FILE_ID); //串口1 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // RunMake(THIS_FILE_ID); //串口2 NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // RunMake(THIS_FILE_ID); //串口3 NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //ONOFF-CHECK NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void PVD_Config(void) { EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; //??????,???? RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); EXTI_StructInit(&EXTI_InitStructure); EXTI_InitStructure.EXTI_Line = EXTI_Line16; // PVD??????16? EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //?????? //EXTI_InitStructure.EXTI_Trigger??????: //EXTI_Trigger_Rising---????????????????????; //EXTI_Trigger_Falling---????????????????????; //EXTI_Trigger_Rising_Falling---?????????????????????? EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//??????????? EXTI_InitStructure.EXTI_LineCmd = ENABLE; // ????? EXTI_Init(&EXTI_InitStructure); // ?? NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//???????,2???,2??? NVIC_InitStructure.NVIC_IRQChannel=PVD_IRQn;//?????? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//?????2 NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;//????1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//???? NVIC_Init (&NVIC_InitStructure); PWR_PVDLevelConfig(PWR_PVDLevel_2V9); // ??????:2.9V PWR_PVDCmd(ENABLE); // ??PVD } void tdly(int time){ int i,j; for(i=0;i PA9 , USART1_RX -> PA10 // */ // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Init(GPIOA, &GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;// GPIO_Mode_IPU;//GPIO_Mode_IN_FLOATING; // GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_Init(GPIOA, &GPIO_InitStructure); // USART_InitStructure.USART_BaudRate =115200;// 115200; // USART_InitStructure.USART_WordLength = USART_WordLength_8b; // USART_InitStructure.USART_StopBits = USART_StopBits_1; // USART_InitStructure.USART_Parity = USART_Parity_No; // USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // USART_Init(USART1, &USART_InitStructure); // USART_Cmd(USART1, ENABLE); // // USART_ClearFlag(USART1,USART_FLAG_TC); // USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //ENABLE DISABLE // USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //ENABLE // NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //选择中断分组2 // //串口1 // NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应优先级 // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // NVIC_Init(&NVIC_InitStructure); // //} //void LedInit(void) //{ // GPIO_InitTypeDef GPIO_InitStructure; // RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//复用功能IO 时钟使能 这里必须先使能复用IO的时钟,再关闭JTAG功能 // GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // JTAG-DP Disabled and SW-DP Enabled // // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE); // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_InitStructure.GPIO_Pin = MODEM_LED1_PIN; // GPIO_Init(MODEM_LED1_PORT, &GPIO_InitStructure); // GPIO_InitStructure.GPIO_Pin = MODEM_LED2_PIN; // GPIO_Init(MODEM_LED2_PORT, &GPIO_InitStructure); // //// MODEM_LED1_HIGH; //// MODEM_LED2_HIGH; //// SetLedIndicator(InStart); // MODEM_LED1_LOW; // MODEM_LED2_LOW; //} //U64 stkMainTask[1024]; //U64 stkModemUartTask[1024]; //U64 stkModemTask[1024]; //__task void ModemUartTask(void) //{ // while(1){ // os_dly_wait(100); // printf("111111----\r\n"); // IWDG_ReloadCounter(); // } // //} //__task void ModemTask(void) //{ // while(1){ // os_dly_wait(200); // printf("2222222----\r\n"); // } //} //__task void MainTask(void) //{ // os_tsk_create_user(ModemUartTask,3,&stkModemUartTask,sizeof(stkModemUartTask));//1024 // os_tsk_create_user(ModemTask,3,&stkModemTask,sizeof(stkModemTask));//1024 // while(1){ // os_dly_wait(400); // printf("4444444----\r\n"); // // } //} //void IWDG_Configuration(unsigned int value) //{ //// WWDG 时钟使能 // RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)RCC_ClearFlag(); ////写入0x5555,用于允许狗狗寄存器写入功能 // IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // ////狗狗时钟分频,40K/256=156HZ(6.4ms) // IWDG_SetPrescaler(IWDG_Prescaler_256); // ////喂狗时间 // //IWDG_SetReload(200);1.28s/6.4MS=200 .注意不能大于0xfff // IWDG_SetReload(value);//3.2s/6.4MS=500 .注意不能大于0xfff // ////喂狗 // IWDG_ReloadCounter(); // ////使能狗狗 // IWDG_Enable(); //} /********************************************************************************************************** main() **********************************************************************************************************/ int main (void) { RTC_Init(); ModemPinConfig(); PowerCtrlInit(); Uart1Init(); //KeyInit(); /* Initialize RTX and start init */ os_sys_init_user(MainTask,1,stkMainTask,sizeof(stkMainTask)); return (0); } /********************************************************************************************************* END FILE *********************************************************************************************************/