STM32F103RCT6第一个程序——跑马灯程序

发布者:Wanderlust123最新更新时间:2018-08-12 来源: eefocus关键字:STM32F103RCT6  跑马灯程序 手机看文章 扫描二维码
随时随地手机看文章

下面简单介绍下跑马灯程序主要需要配置的方面:


1. 配置GPIO模式


CRL和CRH寄存器用于配置STM32的IO口的模式和速率; 

GPIO有8种工作模式: 

1、输入浮空 

2、输入上拉 

3、输入下拉 

4、模拟输入 

5、开漏输出 

6、推挽输出 

7、推挽式复用功能 

8、开漏复用功能 

对应代码如下:


typedef enum

{

  GPIO_Mode_AIN=0x0,  模拟输入

  GPIO_Mode_IN_FLOATING=0x4,  浮空输入

  GPIO_Mode_IPD=0x28,  下拉输入

  GPIO_Mode_IPU=0x48,  上拉输入

  GPIO_Mode_OUT_OD=0x14,  开漏输出

  GPIO_Mode_OUT_PP=0x10,  通用推挽输出

  GPIO_Mode_AF_OD=0x1C,  复用开漏输出

  GPIO_Mode_AF_PP=0x0x18  复用推挽

}GPIOMode_TypeDef;


配置IO口的速率,定义IO的速率如下:


typedef enum

{

  GPIO_Speed_10MHz=1,

  GPIO_Speed_2MHz,

  GPIO_Speed_50MHz

}GPIOSpeed_TypeDef;


下面再来看看如何定义配置速率、模式和引脚的结构体的,


typedef struct

{

  uint 16_t GPIO_Pin;

  GPIOSpeed_Typedef GPIO_Speed;

  GPIOMode_Typedef GPIO_Mode;

}GPIO_InitTypeDef;


另外:


GPIO_InitTypeDef  GPIO_InitStructure


上面代码语句表示的意思是:定义结构体变量GPIO_InitStructure;类似于int a的意思;GPIO_InitTypeDef可以理解为类似于int,GPIO_InitStructure可理解为类似于a的意思;


下面举例说明初始化PA8和PD2,代码如下:


void LED_Init(void)

{

   GPIO_InitTypeDef GPIO_InitStructure

 RCC_APB2PeriphClockCmd(RCC_APB2_Periph_GPIOA|RCC_APB2_Periph_GPIOD,ENABLE);

 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;

 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50Hz;

 GPIO_Init(GPIOA,&GPIO_InitStructure);

 GPIO_SetBits(GPIOA,GPIO_Pin_8);


GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;

GPIO_Init(GPIOD,&GPIO_InitStructure);

 GPIO_SetBits(GPIOD,GPIO_Pin_2); 

}


另外,设置PA8口为1,可以用如下语句: 

GPIO_SetBits(GPIOA,GPIO_Pin_8); 

若设置PA8位0,可以用如下语句: 

GPIO_ResetBits(GPIOA,GPIO_Pin_8); 

最后就是在主函数main.c里面设置LED0和LED1的状态,然后翻转,实现小灯的交替闪烁,程序如下:


int main(void)

{

 delay_init();

 LED_Init();

 while(1)

 {

 LED0=0;

 LED1=1;

 delay_ms(300);

 LED0=1;

 LED1=0;

 delay_ms(300);

 }

}


今天还学到了:在定义结构体时,里面的成员变量之间是分号;二定义枚举类型时,里面的成员变量之间用逗号分开; 

另:int main(void)中,第一个int表示主函数的返回类型时整型,括号中的void表示形参是void; 

2. 如果用户需要添加或者删除.h文件,但是一定要注意在头文件FWLib下的stm32f10x_conf.h 文件中注释掉删除的源文件对应的头文件;


3. 遗留问题


以后如果有时间的话,把GPIO的8种工作模式的各个含义整理一下,8种工作模式分别代表什么意思,在哪种情况下用哪种模式,都好好再整理下


关键字:STM32F103RCT6  跑马灯程序 引用地址:STM32F103RCT6第一个程序——跑马灯程序

上一篇:STM32F103RCT6引脚功能及使用
下一篇:STM32F103RCT6 LED灯程序设计

推荐阅读最新更新时间:2024-03-16 16:10

STM32F103RCT6的SPI驱动OLED
硬件条件:采用中景园电子0.96寸的OLED,7线分别如下: VCC-------- 电源 GND------- 地 D0--------- SCK,连接SPI1的SCK,PA5 D1--------- MOSI,MCU作为主机输出,OLED作为从机接收,接PA7 RST-------- 复位接口,很重要,PC0 DC--------- 命令或者数据控制线,连接PC1 CS---------- PC2片选 以上是OLED和STM32103的接线,也可以采用其他的SPI接口,这里只要D0和D1保证和SPI接口对应上就可以了,其他的线都是自定义的,作为普通IO口输出就可以了。 正确配置以下接口就可以点亮OLED了: 1、SPI接口初始
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved