Python 零散脚本

339 字
2 分钟
Python 零散脚本

test#

# 生成正弦波 wav 250
import wave
import math
import array
# 音频参数
sample_rate = 44100 # 采样频率
duration = 60*10 # 音频时长(秒)
# 创建一个新的WAV文件
output_file = wave.open('output.wav', 'w')
output_file.setnchannels(1) # 单声道
output_file.setsampwidth(2) # 2字节,16位
output_file.setframerate(sample_rate)
# 生成250Hz的音频数据
samples = array.array('h', [0] * (sample_rate * duration))
amplitude = 2 ** 15 - 1 # 振幅
for i in range(len(samples)):
t = float(i) / sample_rate # 当前时间(秒)
samples[i] = int(amplitude * math.sin(2 * math.pi * 250 * t))
# 将音频数据写入WAV文件
output_file.writeframes(samples)
# 关闭WAV文件
output_file.close()
# 生成指定的bin
import os
import binascii
import random
file_path = 'example.bin'
# file_size = 0x3150
file_size = 1024*8
with open(file_path, 'wb') as f:
remaining_bytes = file_size
buffer_size = 1024 # 每次写入的字节数
while remaining_bytes > 0:
buffer = bytearray(random.getrandbits(8) for _ in range(min(buffer_size, remaining_bytes)))
f.write(buffer)
remaining_bytes -= buffer_size
#! /usr/bin/env python
#coding=utf-8
import os
import time
from ctypes import *
import numpy as np
class USBI2C():
ch341 = windll.LoadLibrary("C:/WCH.CN/CH341PAR/CH341DLLA64.dll")
def __init__(self, usb_dev = 0, i2c_dev = 0):
self.usb_id = usb_dev
self.dev_addr = i2c_dev
if USBI2C.ch341.CH341OpenDevice(self.usb_id) != -1:
USBI2C.ch341.CH341SetStream(self.usb_id, 0x80)
USBI2C.ch341.CH341CloseDevice(self.usb_id)
else:
print("USB CH341 Open Failed!")
def read(self, addr,len):
if USBI2C.ch341.CH341OpenDevice(self.usb_id) != -1:
obuf = (c_byte * 2)()
ibuf = (c_byte * len)()
obuf[0] = self.dev_addr
obuf[1] = addr
USBI2C.ch341.CH341StreamI2C(self.usb_id, 2, obuf, len, ibuf)
USBI2C.ch341.CH341CloseDevice(self.usb_id)
# return ibuf[0] & 0xff
return ibuf
else:
print("USB CH341 Open Failed!")
return 0
def write(self, addr, dat):
if USBI2C.ch341.CH341OpenDevice(self.usb_id) != -1:
obuf = (c_byte * 3)()
ibuf = (c_byte * 1)()
obuf[0] = self.dev_addr
obuf[1] = addr
obuf[2] = dat & 0xff
USBI2C.ch341.CH341StreamI2C(self.usb_id, 3, obuf, 0, ibuf)
USBI2C.ch341.CH341CloseDevice(self.usb_id)
else:
print("USB CH341 Open Failed!")
if __name__ == '__main__':
regs_add = [0x0b,0x0f,0x24,0x25,0x26,0x2e,0x2f]
for i in range(len(regs_add)):
i2cDevice = USBI2C(0,0x32)
buf = i2cDevice.read(regs_add[i],1)
print(hex(regs_add[i]),hex(c_uint8(buf[0]).value))

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Python 零散脚本
https://zimablue1996.github.io/posts/migrated/python_tinytools/
作者
Firefly
发布于
2026-04-03
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Firefly
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
25
分类
11
标签
31
总字数
25,208
运行时长
0
最后活动
0 天前

目录