目录
功能3:捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑
基于Air105开发板:Air105 - LuatOS 文档
前文:
探讨重点
对官方camera - 摄像头demo中capture功能的复现:实现功能3,捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑。
实现功能
功能3:捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑;
功能3:捕捉图片存入SPI接口外置sd卡,副本同步通过Serial 串口输出jpg文件存入电脑
实现思路
串口数据输出同步在电脑上另存JPG图像,根据上文的图片处理思路编写处理代码,采用python语言。
代码分析
获得本机所有串口(windows版)
def get_com_list():
global port_list
port_list = serial.tools.list_ports.comports()
return port_list
串口初始化
number_ser = input("请输入串口编号(数字):")
ser = serial.Serial("com" + number_ser, 115200) #稳定连接可不设置timeout,即timeout=0.0
守护捕获到串口数据后另存为jpg
while True:
count = ser.inWaiting()
time.sleep(0.40)
if count > 0:
# time1 = str(datetime.datetime.now())
content = ser.read_all()
newfile=filepath.replace(".jpg",'')+'_'+str(n)+".jpg"
with open(newfile, 'wb') as fp:
fp.write(content)
print('截图-('+str(n)+')保存成功!\n')
n = n + 1
程序文件
import serial
import serial.tools.list_ports
import binascii
import os
import shutil
import time
import datetime
def get_com_list():
global port_list
port_list = serial.tools.list_ports.comports()
return port_list
def print_com_list(get_com_list):
if len(get_com_list()) <= 0:
print("无串口设备。")
else:
print("可用的串口设备如下:")
for com in get_com_list():
print(com)
print(list(com)[0], '--', list(com)[1]) # 分别输出
if __name__ == "__main__":
print_com_list(get_com_list)
filepath = r"G:\bsp\LuatOS-SOC接口文档学习\camera\Air105\capture\uart.jpg"
if os.path.exists(filepath):
shutil.copy(filepath, filepath.replace(".jpg","")+"_old"+".jpg")
os.remove(filepath)
number_ser = input("请输入串口编号(数字):")
ser = serial.Serial("com" + number_ser, 115200) #稳定连接可不设置timeout,即timeout=0.0
if ser.isOpen():
print('串口打开成功!\n')
f = open('./test.txt', 'w')
# pass
else:
print('串口打开失败!\n')
try:
n = 1
while True:
count = ser.inWaiting()
time.sleep(0.40)
if count > 0:
content = ser.read_all()
newfile=filepath.replace(".jpg",'')+'_'+str(n)+".jpg"
with open(newfile, 'wb') as fp:
fp.write(content)
print('截图-('+str(n)+')保存成功!\n')
n = n + 1
except KeyboardInterrupt:
if ser != None:
f.close()
ser.close()