树莓派设置自启动程序后不能通过JS停止Python程序

树莓派设置自启动程序后不能通过JS停止Python程序,第1张

首先申明js我不会

看到楼主你的思路,我感觉你应该不会成功,看我分析一下:

程序自启动,python程序开始运行,running= Ture,那么程序将一直按照running= Ture执行下去,外部任何输入都是没有用,除非程序停下来检测一下,running的状态,换句话说:你启动的时候running就是Ture,那么我就运行,你什么时候改变状态我也不知道,建议楼主,能在循环中检测一下running状态。这样才能有效的控制程序运行,下面是都伪代码:

while Ture:        # 程序一直循环开启

    if running:      # 如果如果运行状态是真

        do something  # 开始执行

当然这里要注意一下 全局变量问题,我这没有测试,怕全局变量会有影响!!!

此篇为 《树莓派使用基础》 中,RPI.GPIO Input功能高级应用技巧。GPIO的简单使用请参考博文 树莓派3B+ GPIO输入输出使用

目前有几种途径可以在程序中获得 GPIO 的输入信息。

如果在输入针脚上没有连接任何元件,那么它将是“浮动(float)”的。换句话说,因为没有连接任何元件,在按下按钮或开关之前,读取的值是没有意义的。由于电源的波动,获取到的值可能会有很大的变化。

为了解决这个问题,我们需要使用 上拉/下拉电阻 。这样,我们就可设定输入的默认值了。在这里,可以使用硬件或软件对电阻进行上拉/下拉。使用硬件方式,将一个 10K 的电阻连接在输入通道与 3.3V(上拉)或 0V(下拉)之间是常用的做法。而 RPi.GPIO 也允许您通过软件的方式对配置 Broadcom SOC 来达到目的:

或者

通道编号是基于所使用的编号系统所指定的(BOARD 或 BCM)。

边缘的定义为电信号从 LOW 到 HIGH(上升临界值)或从 HIGH 到 LOW(下降临界值)状态的改变。正常情况下,对于输入的值来说,我们更关心的是输入的状态是否发生了改变。这种状态上的改变是很重要的。

为了避免程序在忙于处理其它的事物时而错过了按下按钮的 *** 作,这里有两种方法可以解决:

在检测到边缘时执行线程回调函数

注意,可以输入 GPIO.RISING、GPIO.FALLING、GPIO.BOTH 对边缘进行检测。这种方式的优点是占用 CPU 资源很少,因此系统可以有充裕的资源处理其它事物。

RPi.GPIO 在第二条线程中执行回调函数。这意味着回调函数可以同您的主程序同时运行,并且可以立即对边缘进行响应。例如:

如果需要多个回调函数:

注意,在该示例中,回调函数为顺序运行而不是同时运行。这是因为当前只有一个进程供回调使用,而回调的运行顺序是依据它们被定义的顺序。

可能会注意到,每次按钮按下时,回调 *** 作被调用不止一次。这种现象被称作“开关抖动(switch bounce)”。这里有两种方法解决开关抖动问题:

或者

由于某种原因,若不希望程序检测边缘事件,可以将它停止:

原文链接

参考链接

1、在配置树莓派的中断时,可以设置中断的优先级,以确保在多个中断同时发生时,树莓派可以正确地响应和处理中断。

2、在树莓派的Linux系统中,中断的优先级是通过IRQ(InterruptRequest)来实现的,IRQ是一种硬件中断请求,它可以触发CPU的中断处理程序,以响应外部设备的请求。

3、在树莓派的Linux系统中,IRQ的优先级是通过中断控制器(InterruptController)来管理的,中断控制器可以根据中断的优先级来决定哪个中断先被处理。

4、在树莓派的Linux系统中,可以通过修改中断控制器的配置文件来设置中断的优先级。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12000789.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存