
本次测评的第一个基础任务是GPIO测试:使用外部中断控制小灯点亮熄灭,实际上不管是外部中断还是小灯的亮灭控制,都是对GPIO的基本控制,一个是输入附带中断,一个就是纯纯的输出控制,这里我们将在上一个例程的基础上通过对STM32CubeMX对单片机进行配置然后实现这些功能,毕竟上一个历程中实际上并没有对任何控制引脚进行配置,只不过有最基础的一些系统配置,保证芯片可以运行起来。$ ?. o' F$ `( g$ D: A; w; S 我们看一下时钟的配置: ![]() 目前已经配置为最大的48MHz的系统时钟,使用的是内部的振荡器,这里我们就不修改了,虽然板子上配备的高速外部时钟,对本次测试的影响不大。$ C& \% U& }& f 首先看一下对应的灯的原理图: ![]() 本开发板上一共配备了2个可以自定义的LED,LD1是绿灯,可以通过PA5引脚进行控制,LD2是蓝灯,可以通过PC9进行控制,通过原理图进行分析,当PA5为高电平时LD1亮起,PC9为低电平时LD2亮起。6 _5 m3 V# N3 I6 C8 T$ C: U 再看一下按键的原理图:- \* u/ V) O. n6 Y ![]() 按键还是老样子,连接的是PC13引脚。 g) L" P7 t: z. l, A 接下来我们看一下STM32CubeMX中的配置: 按键配置为外部中断: ![]() 并修改为下降沿触发: ![]() 开启中断: ![]() LED的输出控制配置就比较简单了,配置为输出:3 |5 B7 Z' m+ G6 N: d6 ? ![]() 简单改一下配置让灯初始状态为灭的:, X5 ~8 B( [5 I* {- e8 K ![]() 另一个灯的控制引脚的处理是一样的。 软件方面咱们主要写的就是外部中断的回调函数,这里注意一下,这次看到主要的中断是下降沿触发,对应的是HAL_GPIO_EXTI_Falling_Callback(GPIO_Pin);重写如下:
效果如下:; [' A9 N* v# h: J ![]() , |' \) Y% I( C" }! b# {$ U 2 l% Z9 `" J! f( m0 ?4 N1 q f; K ; R, b2 i! W# K' i) R9 d . r* H* q; f* P4 e$ h3 s w, o2 h |
NUCLEO-C071RB评测3_PWM测试
NUCLEO-C071RB评测1_GPIO测试
【STM32C0评测】+NUCLEO-C071 PWM输出测试
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32C0评测】汇总以及视频讲解
NUCLEO-C071RB评测2_UART不定长数据收发的测试