本帖最后由 ywlzh 于 2016-1-22 14:14 编辑
现在说说怎么使用这个工程,这个工程面对的是stm32f1系列的单片机。
进入主函数之后最开始还是对时钟做处理,我选择的是外部时钟,8M的晶振,如果你们用的是其他的晶振可以在
if(RCC_WaitForHSEStartUp() == SUCCESS)
{
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
FLASH_SetLatency(FLASH_Latency_2);
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08);
}
中的 RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); 做处理,这句话的意思就是将外部的8M的晶振先不分频,然后9倍频,到了72M了,
接着做各个外设的初始,
做完初始化了之后就开始进入ucosiil
OSInit();
OSTaskCreate(start_task,
(void *)0,
(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],
START_TASK_PRIO );
OSStart();
至于怎么创建任务,任务怎么通信,任务怎么调度,这些个问题,我想只要你开始用ucosii做项目,你就回慢慢明白的!不要一次性贪大,一步一步的来。先看入门的书,然后对单片机开始操作,你会发现,原来这么简单!
|