本节课为《7天物联网智能家居实战训练营1期》的第3节课。
一、STM32时钟树是什么?
STM32时钟树见如下框图:
STMcubemx设置时钟
时钟理解及互动环节
二、GPIO设置及编程应用
GPIO编程
当用延时做亮灯实验时,程序采用查询io电平的办法来捕获按键动作,并没有响应,经分析原因是延时占用了MCU大部分的运行时间,所有只有在中断模式下处理按键动作才能实现(该部分在第四节课中用中断来解决)。
GPIO学习互动环节----
三、 编写代码点亮LED
//头文件
#include "stm32f10x.h"
#include "GPIO.h"
//函数声明
void GPIO_Configuration(void);
//=============================================================================
//文件名称:Delay
//功能概要:延时
//参数说明:nCount:延时长短
//函数返回:无
//=============================================================================
void Delay(uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
//=============================================================================
//文件名称:main
//功能概要:主函数
//参数说明:无
//函数返回:int
//=============================================================================
int main(void)
{
GPIO_Configuration();
while (1)
{
PAout(1)=1;
Delay(0xfffff);
Delay(0xfffff);
PAout(1)=0;
Delay(0xfffff);
Delay(0xfffff);
}
}
//=============================================================================
//文件名称:GPIO_Configuration
//功能概要:GPIO初始化
//参数说明:无
//函数返回:无
//=============================================================================
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE);
//=============================================================================
//LED -> PA1
//=============================================================================
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
注:点亮视频上传不成功!!!