在串口的基础上加上定时器
其构造函数:
machine.Timer(id,channel,mode=Timer.MODE_ONE_SHOT,period=1000,unit=Timer.UNIT_MS, callback=None, arg=None, start=True,priority=1, div=0)
函数中对应的参数,根据下图:
定时器的回调函数:
打印hello
配置定时器
将其调用在串口发送函数中,进行1s一次发送
总代码:
from fpioa_manager import fm
from machine import UART
from machine import Timer
import time
# 定时器回调
def on_timer(timer):
print("hello")
# 配置定时器0通道0
# tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PERIODIC, period=1, unit=Timer.UNIT_S, callback=on_timer, arg=on_timer, start=False, priority=1, div=0)
# 引脚配置
fm.register(7, fm.fpioa.UART1_TX, force=True)
fm.register(6, fm.fpioa.UART1_RX, force=True)
# 初始化UART1
uart_A = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096)
# 测试串口收发
write_bytes = b'hello world\r\n'
uart_A.write(write_bytes)
time.sleep_ms(1)
while True:
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_ONE_SHOT, period=3000, callback=on_timer, arg=on_timer)
if uart_A.any():
read_data = uart_A.read()
if read_data:
print("write_bytes = ", write_bytes)
print("read_data = ", read_data)
uart_A.write(read_data)
if read_data == write_bytes:
print("baudrate:115200 bits:8 parity:0 stop:0 ---check Successfully")
uart_A.deinit()
del uart_A