一、Systick的装备
1、简略介绍
这是一个体系定时器,时钟源可认为AHB时钟,也可设置为SysClk/8。使用时先设定初始值,然后每来一个时钟,减去1,计数器为0时标志置位,也可触发中止。
在我的程序中,Systick用作usos的作业时钟。
2、我的源程序
void SysTick_Config(void){
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
SysTick_SetReload(72000*10);
//72MHz的频率下,计数72000需求1ms。
SysTick_ITConfig(ENABLE);
}
下面是中止服务程序
void SysTickHandler(void){
OS_CPU_SRcpu_sr;
OS_ENTER_CRITICAL();
OSIntNesting++; //中止嵌套计数
OS_EXIT_CRITICAL();
OSTimeTick();//ucos的时钟服务程序
OSIntExit();//这儿能够触发使命切换软中止
}
二、GPIO的装备
1、PA口
PA0对应按键PB3,开发板右下角。PA1用于模仿电位器,JP1在这儿。PA2用定时器的PWM发生液晶的背光电源。PA4-PA7用于SPI形式操作SD卡。PA9,PA10用于串口0通讯。PA11,PA12是USB差分线。PA13、PA14、PA15是JTAG的三个脚。
PA3、PA8没用到。
2、PB口
PB0用于扬声器,PB2与JP4用于Boot1挑选。PB3和PB4是JTAG的别的两个脚。PB5操控绿色指示灯,在SD卡上面。PB6、PB7用于I2C的存储器。PB8、PB9用于CAN收发器。PB11-PB15用于摇杆按键。
PB1和PB10没有用到
3、PC口
PC0到PC7用于液晶的数据口,PB8-PB12别离用于读、写、指令数据挑选、复位和片选。PB13是PB2按键,在PB3左面。PB14-PB15外接32.768KHz晶振。
以上是开发板上各个IO口的用处,通用IO口先在这儿装备,其它复用功用的在相应的功用里装备,以下是源程序。
4、程序
void GPIO_Config(void){
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//最大速度50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure);//对A口初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_13| GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/256506.html