不用手动编程!ChatGPT帮你轻松实现单片机按键输入功能

从今年年初,OpenAI发布的ChatGPT已摧古拉朽之势席卷全球,短短两个月注册用户数就超过1亿人,是全世界增长速度最快的应用。很多人都说今年是AI元年,其实也是有一定道理的,之前的AI门槛相对较高,很多人没有机会参与其中,现在门槛几乎降到了零,普通人也可以参与到AI的浪潮中,作为一名嵌入式er,当然也要来试用一下,看看Chatgpt有多神奇,到底能不能解放我们的双手呢!

我准备了一块STM32F429IGT6的开发板,尝试让ChatGPT帮我实现按键输入功能,通过按键来控制不同的LED灯。话不多说,下面就开始让ChatGPT来帮我们编程吧。

1. 向ChatGPT提问

如何向ChatGPT提问非常关键,给出清晰明确详尽的prompt,才能生成质量更高的结果,避免后续调bug的麻烦,下面是我向ChatGPT抛出的Prompt

prompt: 基于HAL库编写按键控制LED灯程序,不需要用STM32CubeMX进行配置GPIO,直接用代码实现。
共有四个按键KEY0、KEY1、KEY2、KEY_UP以及两个LED灯LED0、LED1,要实现的功能是:KEY_UP控制LED0和LED1关闭;KEY2控制LED0,按一下状态翻转一次;KEY1控制LED1,按一下状态翻转一次;KEY0同时控制LED0和LED1,按一下状态翻转一次;用按键扫描的方式实现。
一、引脚的配置要求:

  1. KEY0、KEY1、KEY2、KEY_UP分别对应GPIO引脚PH3、PH2、PC13、PA0
  2. PH3、PH2、PC13引脚设置为输入模式、上拉模式,PA0引脚设置为输入模式、下拉模式
  3. KEY0、KEY1、KEY2、KEY_UP的键值分别定义为1、2、3、4
  4. LED0、LED1分别对应PB0、PB1
  5. PB0、PB1引脚设置为输出模式

二、代码编写的要求:

  1. 按键初始化程序、按键扫描程序要作为独立的模块(key.c)进行编写
  2. 按键扫描函数要添加防抖代码
  3. 不同的按键定义不同的键值
  4. 在主函数中根据不同的键值来判断哪个按键按下,然后实现相应的功能
  5. LED引脚初始化在MX_GPIO_Init()函数中实现

在这里插入图片描述
ChatGPT在一顿疯狂输出后,完成了代码的编写。初步看了一下,代码写得是真不错,但是能不能够实现功能,驱动起单片机的按键输入并按要求控制起LED灯呢?只有把代码拷贝到Keil中,编译下载到开发板中,验证一下才能知道答案了。

2. 拷贝代码

这里使用了STM32CubeMX搭建的基于HAL库的工程模板,因此拷贝上面的代码时,需要有选择性的拷贝。比如HAL库初始化函数、系统时钟配置函数,这些函数在搭建工程时,已经由STM32CubeMX自动生成了,所以无需重复拷贝

  • 添加key.h文件,将ChatGPT生成的按键相关宏定义代码拷贝到文件中

在这里插入图片描述

  • 添加key.c文件,将ChatGPT生成的按键初始化代码和按键扫描代码拷贝到文件中

在这里插入图片描述
在这里插入图片描述

  • main.c文件中,拷贝LED驱动相关的代码

在这里插入图片描述
在这里插入图片描述

  • 将按键控制LED灯的代码,拷贝至主函数while循环中

在这里插入图片描述
编译通过,没有任何报错,先给ChatGPT点个赞!

3. 编译运行

最终的考验来了!将编译好的代码下载到开发板中。重启开发板后,按键被成功的驱动起来了,能够按照描述的不同要求控制LED的组合亮灭,还带按键防抖,相当的丝滑。看下面的视频

不用手动编程!ChatGPT帮你轻松实现单片机按键输入功能

至此,通过ChatGPT生成代码,再结合ctrl+c和ctrl+v ,完全不用手动编程,ChatGPT帮我们轻松实现了单片机按键输入功能,牛!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/66010.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过链接跳转到微信公众号关注页面

首先你查看要操作的公众号历史文章,将其在PC浏览器上打开,将其 参数值复制下来,然后替换这个链接地址中的参数值即可https://mp.weixin.qq.com/mp/profile_ext?actionhome&__bizMzU1NzUzNzM4NA#wechat_redirect

微信-点链接进入公众号关注页

点链接进入公众号关注页 1.找到公众号id值biz2.拼接链接3.测试 现在的公众号引流一般都只能是二维码扫码后关注,那么通过点击一段网页链接怎么引导用户到公众号关注页呢? 1.找到公众号id值biz 进入公众号,点击文章: 复制文章链…

微信公众号消息增加跳转链接

微信公众号消息增加跳转链接 背景: 用户在首次关注公众号后会弹出一条欢迎消息。给这条消息增加跳转的链接,使得用户在点击之后可以跳转 到一个你希望用户访问的页面。 解决方案: 根据微信开发者文档,找到了3种实现方式。 1…

如何用nodejs构造一个网站爬虫

爬虫是个什么东西 英文spider,网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些…

平板电脑能安装java_手机上能安装的应用,平板电脑上是不是都能安装

手机上能安装的应用,平板电脑上是不是都能安装以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 手机上能安装的应用,平板电脑上是不是都能安装 只要是同系统的一般都行…

元宇宙与脑机接口

今天有有幸,读到了几篇好文,有如醍醐灌顶,让人大开眼界与思维的同时,感受到极深的共鸣。特此动笔写写一些感悟,也是纪念这许久以来,少有的精神上的愉悦。 这几篇文,链接如下: 人类唯…

程序员熬过中年危机的八条建议

年关将至,最近发完今年最后一个版本,周末跟几位原同事小聚,侃谈人生,顺便谈到大家境况。有人顺利晋升,有人无望转岗,也有人面临续约淘汰。实际上,每个人都进入冲刺阶段,不管是谋生、…

转载……给新人程序员的八点建议

给新人程序员的八点建议 他结合自身经历,对许多刚踏入程序员行列的新人程序员,他给出了以下八点建议 …… 今 年已经是陈皓在程序员行业里的第十个年头了。总结这十年,毕业的头两年,陈皓在银行中昏昏沉沉中度过,“这…

职场7个建议 轻松抛弃同龄人

点击蓝字关注,回复“职级”获取知名互联网公司职级定义 昨天在IT东方会平台做了一场直播,很多朋友提了很多职场相关的问题,觉得有必须总结一下这些年一些职场习惯,希望这些建议可以启发到你。 那现在就开始吧,下面从「…

2017热点推荐:成功程序员的8个习惯

对成功的渴望或许是我们与生俱来写在基因里的一部分。成功会让人幸福,并且几乎每个人都在争取幸福。当我们感到幸福的时候,我们大脑中的化学物质会迸发积极的情感,激励我们获取更多的成功。 成功的职业生涯通常是指规定时间内,发布…

这8个习惯可以改变整个人生?

1、清晰地知道你今天的工作,不会迷茫磨时间; 早上的阳光真舒服啊,繁闹的街区空荡荡没有几个人,感觉自己平白无故地,比别人赚到了2个小时的自由时间。 2、有充沛的精力,帮你高效地完成计划; 早…

成年后,让我快速成长的50个人生建议

1、永远对任何人保留至少30%的神秘感。 对于刚认识的人更是如此,跟陌生人聊几个小时就把自己全盘托出的,不是单纯而是傻逼,你越主动越卑微,别人越看不起你。你越有分寸,越有界限感,别人越尊重你。不卑不亢…

对自己的全面检视,写在28周岁的人生规划

一、你的个人核心价值观是什么? 1)、我为什么活着? a.存在即合理:既然活着,就努力活着,活出样子来! b.活着的需求:马斯洛需求层次理论。 具体为:生理需求/安全需求/社交…

一份来自28岁.NET老程序员的自白

写在前面 很幸运,28岁的我头发还没有掉光,更幸运的是28岁的我开始了博客园的写作生活!这样的技术分享经历让我拓展了自己的朋友圈!有幸结识了像张善友张队(连续13年的微软MVP),大石头(NewLife团…

Semantic Text Matching for Long-Form Documents(长格式文档的语义文本匹配)笔记

ABSTRACT 1、大多数现有的语义文本匹配方法在此设置中取得的成功有限,因为它们无法从长格式文本中捕获和提取主要思想和主题。 2、提出了SMASH RNN,综合了来自不同文档结构级别的信息,包括段落、句子和单词。基于注意力的分层 RNN 导出每个文档结构级别…

有哪些科研人员看文献必用的软件?

你可曾因为在电脑上找不到某篇已读文献而急躁? 你可曾因为向手机、平板一篇篇传输文献而厌倦? 你可曾因为检索各网站找不到想要的论文而烦恼? 如果答案是: 有、是、甚至想砸电脑 !那今天推荐软件一定合您口味&#xff…

让ChatGPT告诉你如何学习SAP FICO模块的系统知识

文章目录 目录 文章目录 SAP FICO模块介绍 ChatGPT介绍 想要了解SAP系统的FICO模块,如何学习 学习FICO模块,有哪些步骤 学习FICO模块,需要哪些基础知识 学习FICO模块,有哪些注意事项 总结 SAP FICO模块介绍 FICO&#x…

光凭验证码就可以盗号!微信盗号新手段揭秘

 光凭验证码就可以盗号!微信盗号新手段揭秘 91.com移动互联网第一平台 时间:2014-06-30 [网站合作] 快速评论 分享到QQ好友新浪微博91娱乐 目前有一种新型盗号方式即骗取用户手机验证码来盗取用户微信QQ等帐号,从…

不用下载应用也能联调信息流广告?

在日常的投放当中,我们总会经常遇到需要联调广告来确认数据回传是否正常,因此在需要经历下载应用——安装——激活——注册——付费等一系列过程来进行每个事件的确认,单纯下载安装还可以,但是每次都需要付费的话,对我…

常见信息流广告有哪些展现形式

信息流广告指的是通过精准的用户标签定向,将广告内容嵌入到产品生态之中,做到不打扰用户的广告体验,激发用户对广告的主动性,促使其主动接受和分享。信息流广告与传统的展示广告在展现样式上最大的区别就在于传统的展示广告有固定…