自己写的一些ARM实验。
实现两个LED灯的交替闪烁。
通过按键控制LED灯。
控制效果:
- key0:控制同时控制DS0和DS1,按一次,两个灯反转一次
- key1:控制DS1反转
- key2:控制DS0反转
- wkup:控制DS1和DS2互斥点亮
串口自发自收。
- 启动程序向串口1发送Hello, world!
- 向串口1发送数据,数据原数返回。
- 队列缓存255个字节。
- 中断接收,阻塞发送。
实验效果与实验2相同,但是是通过外部中断触发的方式实现的!
自实验开始,HAL库版本升级为STM32Cube_FW_F4_V1.25.0。实验实现不同频率点亮两个LED灯。
- 基本时钟TIM6的时钟频率为500ms。——LED1
- 延时函数延时时间为1000ms。——LED0
该实验对外有三个输出管脚:
- PA6 —— 断路管脚,高电平有效。
- PA7—— OC1N输出管脚。
- PA8—— OC1输出管脚
该实验通过TIM1的通道1实现,可以在调试修改compare值来调节PWM输出占空比,且通过改变PA6电平来控制PWM是否输出。
该实验通过TIM8实现捕获功能,其捕获管脚为PC6。
- testInput:改变PWM波的占空比
- testResultPulse:捕获正脉冲时钟数,精度为180MHz
- testResultPeriod: 捕获PWM一个周期时钟数,精度为180MHz
在调试模式中,通过修改PWM波的占空比,比较ARM硬件捕获的能力。
该实验通过SRAM来驱动LCD屏幕。
通过该实验可以在屏幕上输出中文,字符串以及数字。
该实验通过DMA驱动串口发送大量数据
1. 每次按下按键0,启动发送 程序
2. LCD屏幕上显示发送的进度
3. LED灯周期1s闪烁