本笔记为参加 《百问网-七天物联网智能家居》Day3 记录
1. 单片机时钟
计算机内部,时钟脉冲每产生一次,则工作一下。时钟的频率越高,CPU的执行效率约高。但是芯片设计时,时钟是有上限的(STM32上限为72MHz)
特点1:现代计算机系统中必定有时钟(时钟本质:同步)
特点2:高级的单片机系统中,存在不同频率的时钟(最优化)
2. STM32时钟树
内部时钟:在芯片内部集成,无需额外的硬件,可直接使用,降低成本。但是精度较低
外部时钟:外部添加时钟源电路,精度较高。成本较高
低速时钟:一般用于RTC、看门狗等不需要很快速度的外设
高速时钟:为系统提供时钟
下图为STM32CubeMX配置HSE为外部时钟源 晶体/陶瓷谐振器
时钟配置使用内部时钟,最高能达到64MHz
使用外部时钟,最高能达到72MHz
STM32系统架构
3. STM32GPIO
- STM32F103C8T6一共有48个引脚
- 按A、B、C分组,每组16个引脚,编号为0~15
STM32F103C8T6有2组GPIO,每组16个引脚,即32个GPIO引脚 - GPIO支持8中工作模式
输出模式四种:推挽输出、开漏输出、复用推挽输出、复用开漏输出
输入模式四种:上拉输入、下拉输入、浮空输入、模拟输入
4. 按键输入
main.c
按键延时
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if (0 == HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin)) //首先读一次
{
HAL_Delay(8); //延时避开这段抖动
if (0 == HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin)) //确定是低电平
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET); //亮灯
}
else
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
}
}
}
/* USER CODE END 3 */
}