7天物联网智能家居(基础 Day1)

文章介绍了STM32嵌入式开发的学习路径,包括时钟系统、GPIO控制、中断处理、串口通信、RTOS、Linux应用以及MCU/MPU/DSP/FPGA的区别和应用实例。还提供了C语言基础和硬件操作指南,以及资源链接以供进一步学习。
摘要由CSDN通过智能技术生成

(一)Day1

1.学习路线

嵌入是学习路线

2.基本概念

1.什么是ARM

在这里插入图片描述

2.ARM架构分类

老架构

3.MCU和MPU

在这里插入图片描述

4.DSP和FPGA

在这里插入图片描述

总结

在这里插入图片描述
在控制显示通讯 —— MCU\MPU —— C语言基础、外设基础、RTOS、 Linux基础、操作系统、网络编程
通讯数据处理算法—— DSP —— 数据处理算法理论知识
大量数据处理、特例的实现 —— FPGA —— 高速接口、音视频算法

STM32开发命名规则

在这里插入图片描述

3 嵌入式产品举例

1.智能台灯

无操作系统的MCU项目
功能描述:可以根据外界光照情况调整自身亮度和色温,
也可以通过按钮手动调整,
可以和手机连接,通过app控制,
还能间隔一定时间,提醒用户。

在这里插入图片描述
在这里插入图片描述
一个主控芯片 + WIFI芯片
系统大致框图

在这里插入图片描述

2.智能手环

在这里插入图片描述
通常运行RTOS

3电视盒子

在这里插入图片描述
在这里插入图片描述
运行Linux/Android系统

(二)Day2

1.上手思路

在这里插入图片描述

最小系统概念
在这里插入图片描述

2.寄存器

在这里插入图片描述

存储结构

控制LED 流程:原理图(找到连接的引脚)—— 芯片存储结构图(找到控制寄存器地址)—— 根据手册查看详细信息

在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/25b2e3c82fc84ada8d7f980ca47fb98c.png]在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0bf02e42b9164001882f7e100bdc322e.png]
在这里插入图片描述

3 开发方式

在这里插入图片描述

4 创建工程

在这里插入图片描述
STM32CubeMX创建工程选取MDK-ARM(适用于KEIL的工程),勾选Generate选项
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ac398a5cdbae4ea0bcc5bca38af616f8.png在这里插入图片描述
第一个点灯程序

在主题main函数相对应位置
while (1)
{
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
	HAL_Delay(1000);
	HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_SET);
	HAL_Delay(1000);

}
/* USER CODE END 3 */
}
在这里插入图片描述

5 夜课

C语言指针基础

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何操作GPIO

三种办法
1.参考网上示例
在这里插入图片描述
2.看HAL库源码和注释
在这里插入图片描述
在这里插入图片描述
1.使能时钟
2.初始化配置引脚,里面设置引脚的各个属性
3.如果涉及中断,还需配置中断
4.读引脚函数
5.写引脚函数

  1. 使用配套资料的 《8_STM32F1HAL库和LL库用户手册.pdf》在这里插入图片描述
    在这里插入图片描述

(三)Day3

1.时钟系统与GPIO

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按键控制灯

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);
			}
			
		}

2. CubeMx时钟配置

在这里插入图片描述
判断时钟配置是否正确的两个方法
1.使用HAL库提供的函数HAL_RCC_GetSysClockFreq(),
获取系统时钟频率,再通过串口打印或者debug调试显示结果。
在这里插入图片描述
第二个,硬件方法:PA8可以复用为MCO引脚,对外提供时钟输出。

用示波器监控该引脚的输出来判断我们的系统时钟是否设置正确。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(四)Day4

什么是中断

在这里插入图片描述

中断有哪些

在这里插入图片描述

中断优先级

在这里插入图片描述

GPIO 中断

在这里插入图片描述

中断与事件的区别

链接: STM32 中断与事件

CubeMX操作中断

1.配置中断引脚
在这里插入图片描述

  1. 降低抢占优先级,勾选NVIC代码初始化
    在这里插入图片描述
    在这里插入图片描述
    按键中断调用
    在这里插入图片描述
    最后调用HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) 为虚函数,覆写
static uint8_t key_flag = 0;

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	
	if(GPIO_Pin == KEY_Pin)
	{
		key_flag = ~key_flag;
		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, key_flag?GPIO_PIN_RESET:GPIO_PIN_SET);
	}
}

在这里插入图片描述

通讯

1.串行/并行通讯

在这里插入图片描述

2.全双工\半双工\单工传输

在这里插入图片描述

3.同步\异步通信

在这里插入图片描述

4.串口电平

在这里插入图片描述
串口连接时序
在这里插入图片描述

5.串口测试

CubeMX配置
在这里插入图片描述
实现完串口配置就可以使用 HAL_UART_Receive和HAL_UART_Transmit来接收和发送串口数据

在实现printf格式化输出,需要覆写两个函数,如下 重定向打印输出代码
在 Usart.c中添加如下代码 ,添加头文件 #includ <stdio.h>

/*
* 添加如下代码,可不在工程设置中勾选 Use MicroLIB
*/
#pragma import(__use_no_semihosting)

struct __FILE
{
	int a;
};
	FILE __stdout;
	FILE __stdin;
	void _sys_exit(int x)
{
}

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/9d4aa5bd4faed2b55ef934917046d6f5.png)

![img](https://img-blog.csdnimg.cn/img_convert/a0a75983b392f4e4c79e95d4d9dab2ef.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/c79bc8013e62287b8af104711160e97e.png)

 **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

![img](https://img-blog.csdnimg.cn/img_convert/65b82dd6638f077d915612517f97cf93.png)

![img](https://img-blog.csdnimg.cn/img_convert/076b1501c0ad973375474a1ca69f30e6.png)

 

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

外链图片转存中...(img-32v9Zgdk-1712227820336)]

[外链图片转存中...(img-Gw8LqRz8-1712227820336)]

 

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值