STM32 学习笔记0-智能小车-让小灯亮起来

怎么让下车转起来?分四步:(这部分内容可以看我下学习笔记1 )

先上图,截图来自小破站 技新课堂的老师的课程

程序设计,思路很重要,思路对了,事半功倍!!

小车程序设计第一步: 让小灯亮起来 !(有点像 hello the world!)

硬件

单片机系统: STM32F103RCT6芯片 high density(相关资料可以去 ST 官网下载)

软件:

基本思路:单片机系统是通过引脚相互练习的,来控制单片机,就是控制引脚的高低电平

控制是否正确,怎么来检测电平的高低?

怎么写好程序?既要懂寄存器  又要会库函数

首先,第一步是使能   RCC_APB2PeriphClockCmd

 

 使能怎么理解呢?enable ,因为STM 32 为了避免功耗,通过使能 开关 来使能时钟,这样寄存器才能工作。

51单片机中就一个时钟系统包一切都包了,在STM 32 中,我们很明确地做好了分工,让大家各司其职。

定时器的介绍在后一篇文章有详细介绍。

镜像函数RCC_APB1PeriphClockCmd

什么时候用RCC_APB1PeriphClockCmd这个外设时钟,什么时候用RCC_APB2PeriphClockCmd这个外设时钟呢

在这里插入图片描述
根据上图外设桥接点

 通过  声明   GPIO_InitTypeDef  GPIO_InitStructure;

结构体,在系统库函数中已经定义好了,见下面截图:

结构体的元素,包括 GPIO_Pin = GPIO_Pin_5;                       //LED0-->PA.8 端口配置
                              GPIO_Mode = GPIO_Mode_Out_PP;           //推挽输出
                             GPIO_Speed 

main.c 主函数

#include "stm32f10x.h"   //stm32f10x.h库的功能是提供对于stm32f10x系列开发板的所有功能的定义与实现
 void Delay(u32 count)   //通过软件进行延时  缺点:这种实现方法不精确,优点:但却很好实现;
 {
  u32 i=0;
  for(;i<count;i++);   

 }
 int main(void)
 {	
  GPIO_InitTypeDef  GPIO_InitStructure;
 	
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);	 //使能时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;				       //LED0-->PA.8 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		  //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		  //IO口速度为50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);	//根据设定参数初始化¯GPIOA.8
  GPIO_SetBits(GPIOA,GPIO_Pin_5);						            //PA.8 输出高

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;	    		 //LED1-->PD.2 端口配置,推挽输出
  GPIO_Init(GPIOD, &GPIO_InitStructure);	  				 //  
  GPIO_SetBits(GPIOD,GPIO_Pin_2); 						       //PD.2 输出高  
  while(1)
	{
	  GPIO_ResetBits(GPIOA,GPIO_Pin_5);  
	  GPIO_SetBits(GPIOD,GPIO_Pin_2);
		Delay(3000000);
		GPIO_SetBits(GPIOA,GPIO_Pin_5);
		GPIO_ResetBits(GPIOD,GPIO_Pin_2);
		Delay(3000000);
	}
 }

还有下面两个库函数,我们的LED小灯就亮起来啦

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值