首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

低代码单片机快速实现电压比较器功能

电压比较器

注意:该功能仅适用于 ShineBlink C1 Mini 开发板,C2 内部不具备电压比较器。

一、实现功能

Core 提供 1 个比较器,输入端固定为 Core 的 A0。参考电压可以取 (1/16~15/16) 倍的 3.3v 电压值。并且可以配置成检测电压上升、下降或上升下降都检测。比较器内部自带迟滞功能,迟滞电压为 50mv 左右,提高了抗干扰能力。

本实例配置电压比较器的参考电压为 0.75*3.3v,当 A0 引脚上的电压升高到大于参考电压时 LIB_CompCallBack 函数会自动被 Lua 调用,并 print() 打印输出。

二、接线图

三、完整代码

--定义比较器的回调函数,该函数在比较器输入电压高于0.75倍的Vdd时会自动被调用

function LIB_CompCallBack()

print("Input voltage up\r\n")

end

--配置USB以USB转串口模式工作,用于print打印输出到PC串口终端

LIB_UsbConfig("CDC")

--配置电压比较器开始工作,参考电压=0.75Vdd,工作模式为Up

--即当A0引脚上电压升高到大于0.75倍的Vdd时,Lua会立即自动调用用户定义的LIB_CompCallBack()回调函数

LIB_CompConfig("0.75Vdd", "Up")

--开始大循环

while(GC(1) == true)

do

--do something

--可以在代码中调用LIB_CompCtrl("OPEN")或LIB_CompCtrl("CLOSE")随时开关比较器

end

如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

四、演示结果

五、结语

本文章参考 FlexLua 官网 ,基于 FlexLua 脱离复杂单片机C开发正逐渐成为一种快速高效的 IoT 硬件开发方式。让小白即使不懂单片机开发也可很容易用FlexLua零门槛开发各种 IoT 硬件。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OjdwQRnWTiJy8VMybWXcEXvw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券