stm32103RC--跑马灯实验

来源:互联网 发布:如何生成数据字典 编辑:程序博客网 时间:2024/06/18 07:11

参考www.openedv.com

GPIO的3种用法:



因为板子型号有差异,在这里我仿照网站上提供的源程序进行一定修改。

部分源程序:


//初始化PB5和PE5为输出口(两个灯).并使能这两个口的时钟    //LED IO初始化void LED_Init(void){  GPIO_InitTypeDef  GPIO_InitStructure;  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能PB,PE端口时钟 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置 GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5 GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高,不点亮 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;     //LED1-->PE.5 端口配置, 推挽输出 GPIO_Init(GPIOE, &GPIO_InitStructure);   //推挽输出 ,IO口速度为50MHz GPIO_SetBits(GPIOE,GPIO_Pin_5);  //PE.5 输出高 }

我改的:


//初始化PB8和PB9为输出口.并使能这两个口的时钟    //LED IO初始化void LED_Init(void){  GPIO_InitTypeDef  GPIO_InitStructure;  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能PB端口时钟 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LEDG-->PB.8 端口配置 GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5 GPIO_SetBits(GPIOB,GPIO_Pin_8); //PB.8输出高 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;     //LEDR-->PB.9 端口配置, 推挽输出 GPIO_Init(GPIOB, &GPIO_InitStructure);   // GPIO_SetBits(GPIOB,GPIO_Pin_9);  //PB.9 输出高 }

主程序:

 int main(void) {delay_init();     //延时函数初始化  LED_Init();  //初始化与LED连接的硬件接口while(1){GPIO_ResetBits(GPIOB,GPIO_Pin_8); //LED0输出低GPIO_SetBits(GPIOB,GPIO_Pin_9);//LED1输出高delay_ms(800);GPIO_SetBits(GPIOB,GPIO_Pin_8);//LED0输出高GPIO_ResetBits(GPIOB,GPIO_Pin_9);//LED1输出低delay_ms(800);} }























0 0
原创粉丝点击