打印
[STM32MP1]

【STM32MP135F-DK测评】控制板载LED

[复制链接]
276|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Linux上实现led的控制有很多种方法,本篇学习一种最常规的led控制方法。
本次将使用Linux内核自带的led驱动来控制led。
使用Linux的好处就是很多的设备驱动已经集成在了Linux内核里面,不用重新自己实现驱动。
像Led这种最常见的外设Linux内核里面当然是有实现好的驱动了。

1、使能led驱动
查看内核的驱动配置,看看led驱动有没有使能,如果没有使能需要自己手动使能。
查看源码目录下drivers/leds/Makefile文件,可以看到led驱动默认已经编译到内核了。
再确认一下arch/arm/configs/stm32_defconfig文件里led驱动是否使能。


2、修改设备树
驱动使能后就需要修改设备树了,打开文件arch/arm/boot/dts/stm32mp135f-dk.dts
可以看到已经有了一个蓝色led的描述,是作为HEARTBEAT使用的。

我们可以修改设备树文件,增加一个led的描述。
首先查看开发板原理图,确定led引脚。
可以使用红色led,PA13,低电平点亮。





3、编译设备树文件
make ARCH=arm dtbs LOADADDR=0xC2000040




4、推送到开发板
scp arch/arm/boot/dts/stm32mp135*.dtb root@192.168.7.1:/boot




5、开发板同步并重启
root@stm32mp1:~# sync && reboot


重启完成后就可以在开发板的/sys/bus/platform/devices/leds/leds下看到刚才新增的red led的设备了

然后进入到red:activity后就可以通过command控制led的亮灭了。
亮灯:

echo 1 > brightness

灭灯:

echo 0 > brightness



使用特权

评论回复
沙发
cr315| | 2024-1-22 16:51 | 只看该作者
支持一下,过程描述很详细

使用特权

评论回复
板凳
中国龙芯CDX| | 2024-1-28 12:13 | 只看该作者
讲解的很详细,适合新手!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

214

帖子

1

粉丝