技术标签: 单片机
一直在找ESP8266的按键中断代码,大部分格式如下:
const byte interruptPin = 0; //NodeUMCU 按键
volatile byte interruptCounter = 0;
int numberOfInterrupts = 0;
void setup() {
Serial.begin(115200);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, FALLING);
}
void handleInterrupt() {
interruptCounter++;
}
void loop() {
if(interruptCounter>0){
interruptCounter--;
numberOfInterrupts++;
Serial.print("An interrupt has occurred. Total: ");
Serial.println(numberOfInterrupts);
}
}
但下载进去会发现ESP8266一直重启,rest cause :2。根据Ardunio中文社区这个帖子,8266 2.5.2版本的 中断问题,重新去看ESP8266 Arduino Core,关于中断,这样写到:
Interrupt callback functions must be in IRAM, because the flash may be in the middle of other operations when they occur. Do this by adding the ICACHE_RAM_ATTR
attribute on the function definition. If this attribute is not present, the sketch will crash when it attempts to attachInterrupt
with an error message。
中断回调函数必须位于IRAM中,因为闪存在发生时可能处于其他操作的中间。为此,可以ICACHE_RAM_ATTR在函数定义上添加属性。如果不存在此属性,则草图会在尝试attachInterrupt出现错误消息时崩溃 。
const byte interruptPin = 0; // 13 对应板载LED 2 对应433中断0
volatile byte interruptCounter = 0;
int numberOfInterrupts = 0;
void setup() {
Serial.begin(115200);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, FALLING);
}
ICACHE_RAM_ATTR void handleInterrupt() {
interruptCounter++;
}
void loop() {
if(interruptCounter>0){
interruptCounter--;
numberOfInterrupts++;
Serial.print("An interrupt has occurred. Total: ");
Serial.println(numberOfInterrupts);
}
}
在中断回调函数前加入ICACHE_RAM_ATTR定义。
按键没有消抖。大概懂为什么Ardunio ESP8266加入中断不断重启的问题即可。
Ardunio 开发ESP8266还是快一些,但包装的太多了,总有一些坑。也可以基于ESP8266的SDK进行开发,都可以。ESP8266这个芯片还是蛮有意思的。
文章浏览阅读3.8w次,点赞15次,收藏75次。文章目录查看已安装的版本卸载查看可安装的版本重装19.03.7查看安装后的版本查看已安装的版本[root@master custom-wordpress-php-gd-freetype]# yum list installed|grep dockercontainerd.io.x86_64 1.2.13-3.1.el7 @do..._重装docker
文章浏览阅读283次。1.read():以二进制的格式读取文相应的内容2.geturl():根据相应的内容,获取到请求的url3.getheaders():获取头部信息,列表里面有元组一般转成字典4.getcode():获取状态码5.readlines():按行读取,返回一个列表,都是字节类型6.下载图片的两种方式方式一:import urllib.requestimage_url = '..._urlparse read()
文章浏览阅读2.8w次。中文转Unicodefunction unicode(str) { var value = ''; for (var i = 0; i < str.length; i++) { value += '\\u' + left_zero_4(parseInt(str.charCodeAt(i)).toString(16)); } return value;}function left_zero_4(str) { if (str != nul_tt99911.cm
文章浏览阅读770次。MRv1缺点1、JobTracker容易存在单点故障2、JobTracker负担重,既要负责资源管理,又要进行作业调度;当需处理太多任务时,会造成过多的资源消耗。3、当mapreduce job非常多的时候,会造成很大的内存开销,在 TaskTracker端,以mapreduce task的数目作为资源的表示过于简单,没有考虑到cpu以及内存的占用情况,如果两个大内存消耗的task被..._hadoop集群建立后yarn看到的资源比实际的大
文章浏览阅读1.2k次。maven pom中出现一下依赖问题。Failure to transfer org.codehaus.plexus:plexus-archiver:jar:3.4 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted un..._failure to transfer org.codehaus.plexus:
文章浏览阅读1.9w次,点赞5次,收藏71次。作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_程序员宅基地本文网址:第1章 网络的定义1.1 网络结构相对于基础型的GAN网络,CycleGAN增加了一个核心的还原网络,导致相关的训练也跟着发生了相应的变化,因此还原网络是核心。 还原是双向的,不仅仅是真实输入图片-》Fake图片-》真实输入图片的还原。还包括真实的输出图片 -> Fake图片 -》真实的输出图片的还原。 CycleGAN一共有4个网络:G_A2B, D_A2B, G_B2A,_pytorch-cyclegan-and-pix2pix
文章浏览阅读6.7k次,点赞4次,收藏35次。走tcp协议连接MQTT可以解决模块不支持MQTT协议的问题。首先我们得在onenet平台上创建设备。具体如何创建,请看onenet平台的手册教程。创建设备后,我们把产品ID、设备ID和鉴权信息,记录下来。第二步我们要知道服务器的ip地址和端口号Onenet平台的mqtt的服务器IP是:183.230.40.39 端口是:6002第三步使用tcp工具选择TCPClient然后输..._tcp转mqtt
文章浏览阅读1.2w次,点赞13次,收藏61次。当前的office办公软件主要分为两种。一是微软的office,另一种是金山的wps office(国产免费)。这两个使用大体区别不大,就是在一些小细节上面会有些许不一样,用不同的打开软件打开可能格式会有问题。包含“Excel、Word、PowerPoint、Outlook、OneNote、publisher、access”全部办公功能。只有“Excel、Word、PowerPoint”三个功能。二、下载路径_office怎么下载
文章浏览阅读2.4k次。本文主要介绍怎么在.NET环境下开发OCX控件,打包安装部署程序,以及怎么在页面上调用控件。开发1、新建一个类库,然后打开类库的属性,应用程序→程序集信息 2、编辑程序集信息,主要是要把底部的 使程序集COM可见 勾上,点确定保存程序集信息 3、在类库的属性面板上选择 生成,拉到底部把 为COM互操作注册 勾上 4、在.NET下面开发OCX需要实现IObjectSaf...
文章浏览阅读1.1k次。数据集内容包含7481张训练图片以及7518张测试图片,一共有80256个标记物体并且测试模式包含普通的视角以及鸟瞰视角(Bird Eye’s View, BEV)任务这里主要针对Kitti数据集的3D检测任务,分为3类:(1)简单:最小的box高度为40px,不出现遮挡,最大box重叠比例为15%(2)中等:最小的box高度为25px,最多出现部分遮挡,最大box重叠比例为30%(3)困难:最小的box高度为25px,最多出现几乎完全遮挡,最大box重叠比例为50%算mAP的时候,对于Ca_kitti thetas
文章浏览阅读4.3k次。jvm在嵌入式linux上的移植_linux移植jvm
文章浏览阅读1.2k次,点赞2次,收藏10次。第五步,继续选择完成即可。_qt添加图片资源