510
个编辑
更改
无编辑摘要
!功能
|-
|01实验01-led实验led点灯
|驱动LED点亮
|GPIO推挽输出
|-
|02实验02-马达实验振动马达
|驱动马达振动
|GPIO推挽输出
|-
|03实验03-蜂鸣器实验蜂鸣器
|驱动蜂鸣器发声
|GPIO推挽输出
|-
|04实验04-按键中断实验按键中断
|按键控制
|GPIO外部中断
|-
|05实验05-光敏二极管实验光敏二极管
|采集光敏二极管数据
|ADC采集
|-
|06实验06-DAC实验DAC模拟输出
|引脚输出模拟电平
|DAC输出
|-
|07实验07-温湿度实验温湿度采集
|采集SHT20温湿度数据
|I2C接口使用、SHT20使用
|-
|08实验08-RGB实验RGB
|
|定时器TIM2 PWM输出
|-
|09实验09-红外接收实验红外接收
|红外接收器获取遥控器按键信息
|定时器TIM3捕获模式
|-
|10实验10-串口打印实验串口打印
|串口格式化输出数据
|串口使用,printf使用
|-
|11实验11-串口中断实验串口中断
|
|
|-
|12实验12-串口DMA实验串口DMA
|
|
|-
|13实验13-TFT显示屏实验TFT显示屏
|
|
|-
|14实验14-二维码显示实验二维码显示
|
|
|-
|15实验15-RNG随机发生器实验RNG随机发生器
|
|
|-
|16实验16-RTC实时时钟实验RTC实时时钟
|
|
|}
== 01实验01-led实验 led点灯 ==
第一个实验我们给大家带来的是最简单的外设控制,也就是 IO 口操作,通过这个实验我们可以了解到如何让STM32L476RC的一个 IO 输出高低电平,并以此控制 LED 的点亮和熄灭。
</syntaxhighlight>
== 02实验02-马达实验 振动马达 ==
振动马达实验通过控制 GPIO 引脚输出高低电平,用于控制马达振动或停止 。
</syntaxhighlight>
== 03实验03-蜂鸣器实验 蜂鸣器 ==
蜂鸣器实验通过控制 GPIO 引脚输出高低电平,用于控制蜂鸣器发出蜂鸣声或者停止发声 。
}
</syntaxhighlight>
== 04实验04-按键中断实验 按键中断 ==
按键中断实验,是通过外部引脚中断来判断是否有按键被按下,按键部分的代码这个在马达以及蜂鸣器实验中其实已经展示过了,这边给大家做一个详细的讲解。我们分别选择PC0、PC1、PC2、PC3这4个引脚作为我们的按键引脚,对应EXTI line0、EXTI line1、EXTI line2、EXTI line3。
</syntaxhighlight>
== 05实验05-光敏二极管实验 光敏二极管 ==
光敏二极管在不同的光照强度下,它的out引脚输出的电压不同。所以此实验,我们利用STM32L4的ADC功能,去采集光敏二极管的引脚输出电压,以此能够获取到当前环境的光照情况。
}
</syntaxhighlight>
== 06实验06-DAC实验 DAC模拟输出 ==
此实验我们将会配置DAC1的通道1,作为模拟电压的输出引脚,并且配置一个ADC引脚,采集DAC输出的电压,并将电压值格式化打印到串口显示。
}
</syntaxhighlight>
== 07实验07-温湿度实验 温湿度采集 ==
此实验给大家展示的是利用STM32L476的I2C外设功能,去获取sht20温湿度传感器采集的温湿度数据。并且将获取到的数据转换成真实的温湿度数据,格式化打印到串口显示。
== 08-RGB实验 ==
== 09实验09-红外接收实验 红外接收 ==
红外接收实验,是利用开发板上的红外接收传感器,去获取遥控器按下的信号,红外传感器获取到这个信号后,会转成一段PWM波形从它的DATA引脚输出。此时我们利用STM32的定时器捕获功能,就可以获取到这个PWM波形所携带的信息,以此判断遥控器按下的是哪个按键。
</syntaxhighlight>
== 10实验10-串口打印实验 串口打印 ==
串口打印实验,给大家展示的是如何配置STM32L476一个有效的硬件串口功能,并且顺带给大家介绍了如何去配置一个格式化打印函数printf()。
</syntaxhighlight>
== 11实验11-串口中断实验 串口中断 ==
== 12实验12-串口DMA实验 串口DMA ==
== 13实验13-TFT显示屏实验 TFT显示屏 ==
== 14实验14-二维码显示实验 二维码显示 ==
== 15实验15-RNG随机发生器实验 RNG随机发生器 ==
RNG实验给大家展示一下随机数的生成,在这个实验中,除了main.c以及gyu_rng.c两个关键文件外,我们还需要注意一下gyu_util.c中系统时钟配置,具体的原因,请大家查看下面的工程介绍。
此文件位于“10-串口打印实验\Inc”路径中,主要用途是选择使能此例程使用到的库文件。
// 使能的宏
#define HAL_MODULE_ENABLED // 芯片
#define HAL_DMA_MODULE_ENABLED // DMA
#define HAL_UART_MODULE_ENABLED // UART
#define HAL_SPI_MODULE_ENABLED // SPI
#define HAL_RTC_MODULE_ENABLED // RTC实时时钟
</syntaxhighlight>
接下来我们初始化TFT彩屏相关的SPI控制接口,以及GUI图形界面初始化。并且格式化打印一些内容,字体显示为红色的部分。
最后我们初始化RTC时钟,并且调用实现好的RTC
<syntaxhighlight lang="c++" line="1" start="44">