完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
int main (void)
{ int t = 0 ; CPU_INT08U os_err; STM32_Clock_Init(9);// delay_init(72); uart_init(72,9600); STM3210E_LCD_Init(); BSP_Init(); /* Initialize BSP functions. */ TP_Init(); RTC_Init(); LED_Init();//初始化LED KEY_Init(); GUI_Init(); BSP_IntDisAll(); /* Disable all ints until we are ready to accept them. */ OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel". */ os_err = OSTaskCreateExt((void (*)(void *)) App_TaskStart, /* Create the start task. */ (void * ) 0, (OS_STK * )&App_TaskStartStk[APP_TASK_START_STK_SIZE - 1], (INT8U ) APP_TASK_START_PRIO, (INT16U ) APP_TASK_START_PRIO, (OS_STK * )&App_TaskStartStk[0], (INT32U ) APP_TASK_START_STK_SIZE, (void * )0, (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK)); #if (OS_TASK_NAME_SIZE >= 11) OSTaskNameSet(APP_TASK_START_PRIO, (CPU_INT08U *)"Start Task", &os_err); #endif OSStart(); /* Start multitasking (i.e. give control to uC/OS-II). */ return (0); } |
|
相关推荐
8个回答
|
|
我直接把中断屏蔽了,单独在一个任务里调用RTC_Get()就可以了
|
|
|
|
帮顶....
|
|
|
|
这几个初始化函数之间有矛盾吗,因该是我加了RTC_Init()之后GUI就崩溃了
|
|
|
|
我找到是秒中断处出现了问题,是不是中断太快了导致我的GUI图形界面加载不出来所以才会显示卡死的假象,怎么解决求指导
|
|
|
|
u8 RTC_Init(void)
{ //检查是不是第一次配置时钟 u8 temp=0; if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050)//从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎 { RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);//使能PWR和BKP外设时钟 PWR_BackupAccessCmd(ENABLE);//使能后备寄存器访问 BKP_DeInit();//复位备份区域 RCC_LSEConfig(RCC_LSE_ON);//设置外部低速晶振(LSE),使用外设低速晶振 while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)//检查指定的RCC标志位设置与否,等待低速晶振就绪 { temp++; delay_ms(10); } if(temp>=250)return 1;//初始化时钟失败,晶振有问题 RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//设置RTC时钟(RTCCLK),选择LSE作为RTC时钟 RCC_RTCCLKCmd(ENABLE);//使能RTC时钟 RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成 RTC_WaitForSynchro();//等待RTC寄存器同步 RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能RTC秒中断 RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成 RTC_EnterConfigMode();/// 允许配置 RTC_SetPrescaler(32767); //设置RTC预分频的值 RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成 RTC_Set(2009,12,2,10,0,55); //设置时间 RTC_ExitConfigMode(); //退出配置模式 BKP_WriteBackupRegister(BKP_DR1, 0X5050);//向指定的后备寄存器中写入用户程序数据 } else//系统继续计时 { RTC_WaitForSynchro();//等待最近一次对RTC寄存器的写操作完成 RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能RTC秒中断 RTC_WaitForLastTask();//等待最近一次对RTC寄存器的写操作完成 } RTC_NVIC_Config();//RCT中断分组设置 RTC_Get();//更新时间 return 0; //ok } //RTC时钟中断 //每秒触发一次 //extern u16 tcnt; RTC_ITConfig(RTC_IT_SEC, ENABLE);//使能RTC秒中断 就是这句话 |
|
|
|
void RTC_IRQHandler(void)
{ if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒钟中断 { RTC_Get();//更新时间 } if(RTC_GetITStatus(RTC_IT_ALR)!= RESET)//闹钟中断 { RTC_ClearITPendingBit(RTC_IT_ALR);//清闹钟中断 } RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW);//清闹钟中断 RTC_WaitForLastTask(); } 读取时间中断函数 |
|
|
|
|
|
|
|
遇到了相同问题 。。。。。请问最终怎么解决的啊
|
|
|
|
只有小组成员才能发言,加入小组>>
733 浏览 0 评论
1132 浏览 1 评论
2512 浏览 5 评论
2846 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2693 浏览 6 评论
683浏览 7评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
995浏览 3评论
197浏览 2评论
如果mmcblk1boot0启动失败可不可以从mmcblk1boot1启动呢
188浏览 2评论
用核心板GPIO直接控制网卡1的复位信号是否会导致液晶屏初始化失败?
230浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 17:15 , Processed in 1.370940 second(s), Total 85, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号