123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- /****************************************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<time;i++){
- for(j=0;j<2000;j++){;;}
- }
- }
- void ShowMcuFreq(void)
- {
- RCC_ClocksTypeDef clk;
- RCC_GetClocksFreq(&clk);
- SysTick_Config(clk.SYSCLK_Frequency / 100);
- printf("SYSCLK=%d,PCLK1=%d,PCLK2=%d,HCLK=%d\r\n",clk.SYSCLK_Frequency,clk.PCLK1_Frequency,clk.PCLK2_Frequency,clk.HCLK_Frequency);
- }
- //void Uart1Init()
- //{
- //
- // GPIO_InitTypeDef GPIO_InitStructure;
- // USART_InitTypeDef USART_InitStructure;
- // NVIC_InitTypeDef NVIC_InitStructure;
- // RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1,ENABLE);
- // /*
- // * USART1_TX -> 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
- *********************************************************************************************************/
|