您的位置:首页 > 财经 > 产业 > 做网站软件下载手机版_手机免费云服务器永久使用_大连网络推广_如何建网站教程

做网站软件下载手机版_手机免费云服务器永久使用_大连网络推广_如何建网站教程

2025/1/10 10:58:00 来源:https://blog.csdn.net/bin_zhang1/article/details/144848792  浏览:    关键词:做网站软件下载手机版_手机免费云服务器永久使用_大连网络推广_如何建网站教程
做网站软件下载手机版_手机免费云服务器永久使用_大连网络推广_如何建网站教程

文章目录

  • 前言
  • 一、Timer
    • 构造函数
    • 初始化
    • 销毁函数
    • 示例代码
  • 二、RTC
    • 构造函数
    • init
    • datetime
    • 示例代码
  • 三、ADC
    • API
    • 示例代码
  • 四、WDT
    • API
    • 示例代码
  • 五、File
    • 示例代码
  • 总结


前言

本章介绍K230常用外设的使用方法,相关内容的详细介绍可以参考K210的教程,这里主要展示K230的使用代码


一、Timer

定时器(Timer)的作用在于生成精确的计时,当达到预设的时间点时,提醒我们进行特定的操作。
Timer类位于machine模块下,因此在使用该类时,需要从machine模块中进行引用。

构造函数

timer = Timer(index, mode=Timer.PERIODIC, freq=-1, period=-1, callback=None, arg=None)

【参数】index: Timer号,取值:[-1,5],-1代表软件定时器mode: 运行模式,单次或周期,可选参数freq: Timer运行频率,支持浮点,单位Hz,可选参数,优先级高于periodperiod: Timer运行周期,单位ms,可选参数callback: 超时回调函数,必须设置,要带一个参数arg: 超时回调函数参数,可选参数注意: [0-5]硬件Timer暂不可用

初始化

Timer.init(mode=Timer.PERIODIC, freq=-1, period=-1, callback=None, arg=None)

初始化定时器参数【参数】mode: 运行模式,单次或周期,可选参数freq: Timer运行频率,支持浮点,单位Hz,可选参数,优先级高于periodperiod: Timer运行周期,单位ms,可选参数callback: 超时回调函数,必须设置,要带一个参数arg: 超时回调函数参数,可选参数【返回值】无

销毁函数

Timer.deinit()

释放Timer资源【参数】无【返回值】无

示例代码

from machine import Timer
import timedef fun(i):print("Timer callback")#使用软件定时器,编号-1
tim = Timer(-1)
tim.init(mode=Timer.PERIODIC, period=100, callback=fun) #周期为100mswhile True:time.sleep(0.01) #避免CPU满跑

二、RTC

RTC全称是Real Time Clock,可以用来进行精准的时间计时,我们现在常用的万年历或数字时钟常常就是使用类似的芯片DS1302等等实现计时的功能。K230内置一个RTC,但是这块板子上没有额外的电池,所以要想让RTC一直工作的话,需要板子一直进行上电。

RTC类位于machine模块下,因此我们在使用这个类的时候要从machine模块中进行引用。

RTC的主要功能就是获取实时的时间,当然也可以使用函数进行重新设定时间。

构造函数

rtc = RTC()

【参数】无

init

rtc.init(year,mon,day,hour,min,sec,microsec)

【参数】year: 年mon: 月day: 日hour: 时min: 分sec: 秒microsec: 微秒【返回值】无

datetime

print(rtc.datetime())

【参数】无【返回值】year: 年mon: 月day: 日hour: 时min: 分sec: 秒microsec: 微秒

示例代码

代码如下(示例):

from machine import RTC
import timertc = RTC()if rtc.datetime()[1] != 10:rtc.datetime((2024, 12, 30, 0, 0, 0, 0, 0))while True:print(rtc.datetime())time.sleep(1)

三、ADC

物理世界中的大部分的信号都是模拟量,但是随着单片机的发展,越来越多需要数字信号的处理,因此将模拟信号转换成为数字信号就显得尤为重要。

K230内置了一个ADC,其具有6个通道(该开发板引出了四个ADC通道,分别是0-4,其中0和1的量程为0-3.6V,2和3的量程为0-1.8V),采样分辨率为12bit,采样的速率可以达到1MHz。

ADC类位于machine模块下,因此我们在使用这个类的时候要从machine模块中进行引用。

API

adc = ADC(channel)

【参数】channel: ADC通道号,取值:[0,5]

ADC.read_u16()

获取通道采样值【参数】无【返回值】返回当前ADC通道采样值,[0-4095]

ADC.read_uv()

获取通道电压值【参数】无【返回值】返回当前ADC通道电压值,[0-1800000]

示例代码

from machine import ADC
import timeadc = ADC(0)while True:print(adc.read_u16())print('%.2f'%(adc.read_uv()/1000000*2), "V")time.sleep(1)

四、WDT

看门狗是单片机用来防止软件程序跑飞,从而出现问题的一种内部机制。其本质可以看作是一个定时器,当开启看门狗后,定时器开始运行,在定时器到达设定的重启时间之前要进行喂狗(即重置一下定时器),若超过设定的时间没有进行喂狗,就会通过软件复位的方式,将程序进行复位,从而避免了程序跑飞出现的问题。
K230内部包含两个WDT硬件模块,用于在应用程序崩溃且最终进入不可恢复状态时重启系统。一旦开始,当硬件运行期间没有定期进行喂狗(feed)就会在超时后自动复位。

API

wdt = WDT(id=1, timeout=5)

【参数】id: WDT号,取值:[0,1],默认1timeout: 超时值,单位s,默认5注意: WDT0暂不可用

WDT.feed()

喂狗操作【参数】无【返回值】无

示例代码

from machine import WDT
import timewdt = WDT(1,3)for i in range(3):time.sleep(1)print(i)wdt.feed()while True:time.sleep(0.01)

五、File

在其他的单片机中我们要是想断电后保存一些数据的话,通常会使用EEPROM或者Flash进行数据的存储。在K230中自带一个文件系统,因此我们直接使用K230的文件系统就可以实现数据的存储和获取。

K230进行文件操作的方式和Python的文件操作方式是一样的。K230的文件路径为/sdcard,所创建的文件,直接存储在这个路径下即可。

示例代码

f = open('/sdcard/1.txt', 'w')
f.write('EEWORLD')
f.close()f = open('/sdcard/1.txt', 'r')
text = f.read()
print(text)
f.close()

总结

本章提供了Timer、RTC、ADC、WDT、File的基本用法,供参考,后面我们开始K230在AI领域的应用例程。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com