- 博客(92)
- 资源 (9)
- 收藏
- 关注
原创 详解si5338 si53xx 设计使用及STM32 iic驱动设计
在实际项目中经常使用si5338 si53xx,进行多路时钟的倍频以生成想要的时钟信号,但是针对si5338 si53xx设计使用缺少相关的资料,本文详解si5338 si53xx 设计使用及STM32 iic驱动设计,本文使用工程在项目中得到测试,在多个项目中同时使用。这里做个详解,加速今后的项目开发。本文使用的资源如下图所示ClockBuilderPro_project------------>> 使用ClockBuilder Pro生成的工程,及配置头文件。
2024-09-04 19:14:31 1170
原创 NB6L295M MCU 设计参考
2.5V / 3.3V 双通道可编程时钟 / 数据差分 CML 的延迟输出多电平输入,带内部终端;NB6L295M 是一款双通道可编程延迟芯片主要用于 Clock 或 Data 去偏斜和定时调整。NB6L295M 在那两个单独的可变延迟通道 PD0 和 PD1 可以在以下之一中配置两种操作模式,Dual Delay 或 Extended Delay。在 Dual Delay Mode(双延迟模式)中,每个通道都有一个可编程延迟部分,该部分使用门矩阵和多路复用器。每个通道的最小延迟固定为 3.2 ns。
2024-09-02 11:53:17 513
原创 AD7046 GD32 SPI驱动设计
AD7046简介:ADS7046 12 位, 3 MSPS, 单端输入, 小型低功耗 SAR ADC。ADS7046 是一款 12 位 3 MSPS SAR ADC, 支持0V到 AVDD 范围内的单端输入, AVDD 的范围为2.35V至 3.6V。该器件支持宽数字电源范围(1.65V 至 3.6V) , 可直接连接到各种主机控制器。ADS7046 的标称 DVDD 范围(1.65V 至 1.95V) 符合JESD8-7A 标准。实际项目采用该代码,换算后电压值的测试结果,如下图。
2024-08-29 15:34:52 345
原创 AD5270 AD5271 STM32 SPI驱动设计
针对AD5270 进行原理图设计,与MCU采用SPI接口,AD5270(工程代码+说明文档+手册)并给出例程代码,实现电阻值的设定、并读取
2024-08-29 14:11:55 676
原创 24AA64 24LC64 STM32分层驱动设计
24AA64_24LC64类比AT24C02是嵌入式开发过程中常用存储芯片,这些芯片基本上都是管脚兼容,可以做到PIN2PIN替换,但是硬件替换后了,软件可以正常跑吗?这就对软件设计提出要求。这个问题也是本文探讨的问题之一,并给出工程代码,通过简单修改相关参数可以适配不同的EEPROM。EEPROM存储芯片接口最常用的就是接口的I2C,从软件使用角度进行分析说明。软件设计采用分层理念,保证尽量简洁,方便器件替换后进行更改。同时设计存储结构体变量,针对存储在EEPROM的数据进行封装,方便方便随时添加、删除存
2024-08-27 17:10:48 820
原创 详细讲解STM32CubeIDE一步一步驱动LCD
有项目使用TFT-LCD屏幕,这里就整理一下资料记录一下使用STM32驱动TFT-LCD的过程。
2024-07-25 16:55:04 422
原创 解决虚拟机Ubuntu IP总是掉的问题
嵌入式开发过程中,需要使用NFS/TFTP等等,虚拟机Ubuntu就需要和板卡进行网络连接,但是我发现虚拟机Ubuntu的IP地址经常动不动就掉线,本文记录解决该问题的一些思路。其实这个问题很简单,我早该想到,但是每次出现掉线的情况,我输入如下指令,就又可以了,所以就得过且过,没有深入细致思考。Ubuntu输入如下IP配置指令,ens33是我虚拟机的网络这个这里,每次使用这条指令可以解决一时的问题,我也没有深入留意。
2024-06-17 09:50:16 405
原创 zynq qspi启动、无SD卡、格式化分区emmc、调试全过程
使用黑金开发板,全部开发流程避开使用SD卡调试,zynq开发过程中很多资料都是基于SD启动。这样就对新板卡调试带来了一定的困难,因为新板卡基本上没有设计SD卡。这里就一步一步实现qspi启动内核,格式化分区emmc,挂载emmc分区文件系统。这里需要综述一下调试思路:第一步:根据原理图搭建最小系统vivado工程,使用SDK对硬件电路进行测试第二步:根据vivado工程的hdf文件,使用petalinux生成设备树文件第三步:调试U-boot,这需要调试U-boot设备树、W25Q256FVEI
2024-06-14 16:38:36 1824
原创 一文精通zynq uartlite的使用
项目实施过程中,采用zynq系列芯片,由于zynq自身PS侧仅仅提供两路串口,无法满足实际需求。这就需要从PL侧扩展出来多路串口出来。网上也有一些针对的使用步骤,但是都不够友好,缺少很多细节上的步骤,很难调试成功。本文详解一下实际实现的步骤,供大家参考学习使用。
2023-12-08 10:30:55 2100 1
原创 NB6L295M STM32 GD32 IO模拟驱动设计
MCU采用GD32,GD32基本上和STM32一样,针对NBL295M的时序操作是完全相同的.软、硬件设计已经再产品设计中实际使用。与MCU管脚连接如下表所示。软件代码采用两级级联的方式。
2023-10-12 16:47:35 1001
原创 ad5665r STM32 GD32 IIC驱动设计
根据选择DAC型号不一样,这里取值不一样,我这里是使用16bit 提示一下,该类芯片是一个系列有不同的DAC分辨率,看工程实际使用的型号Quad, 12-/14-/16-Bit nanoDACs。依据不同的管脚封装的进行地址选择,这里工程中实际使用是14管脚封装,根据iic的时序图,根据时序图确定,IIC地址字节为读写分别0x3F、0x3E。MCU采用GD32,GD32类似STM32,针对ad566r的时序操作是相同的,IO模拟的方式进行IIC通信。驱动程序在AD公司提供例程上修改得到。
2023-10-11 15:11:59 872
原创 MAX17058_MAX17059 STM32 iic 驱动设计
插入电池,IC的去抖初始电压测量,以提高初始SOC估计,让他们在位于系统侧。一类:将SDA、SCL初始化为GPIO_Mode_Out_OD(普通开漏输出),后面操作IIC管脚时序的时候,就不需要配置SDA的输入输出模式了。一类:将SDA、SCL初始化为GPIO_Mode_Out_PP(通用推免输出),后面操作IIC管脚时序的时候,就需要配置SDA的输入输出模式。一般iic调试过程,会去读器件ID/版本号之类的保证和手册上说的值一样,这样我们初步判定IIC时序没有问题,这里我们读取。
2023-10-10 11:17:08 593
原创 图像文件的操作MATLAB基础函数使用
简介:MATLAB中的图像处理工具箱体统了一套全方位的标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。这里仅仅对常用的基础函数做个使用介绍。
2023-09-08 14:58:22 560
原创 MATLAB中M文件编写
所谓M文件就是将处理问题的各种命令融合到一个文件中,该文件以.m为扩展名。然后,由MATLAB系统编译M文件,得出相应的运行结果。M文件有脚本文件和函数文件两种。脚本文件不需要输入参数,也不输出参数,而会按照文件中指定的顺序执行命令序列。函数式M文件比脚本式M文件相对复杂一些,脚本式M文件不需要输入变量,也不一定返回结果,而函数式M文件一般要输入变量,并且有返回结果。避免用户输入较多命令,避免重复输入命令,打开该类M文件,单击运行或者按下F5按键,即可运行该类文件。输入如下代码,保存average.m。
2023-09-08 09:34:32 2875
原创 MATLAB创建avi文件
在MATLAB中,可以将一连串图像另存为一段MATLAB视频,然后通过调用movie函数观看。和其他MATLAB Workspace中的变量一样,可以将MATLAB视频另存为mat文件,但是这个mat文件只有MATLAB词可以打开,播放的了。AVI文件格式在windows或UNIX操作系统下均可播放,需要指出的是同通过调用movie2avi函数,可以将MATLAB电源转化为avi格式。用于avi格式的音频视频文件,返回一个对该文件的描述,只能用于avi格式的音频视频文件。测试用用例,如下所示。
2023-09-07 15:45:49 880
原创 MATLAB基础-MAT文件的读写操作
MAT文件是MATLAB格式的双精度二进制数据文件,由MATLAB软件创建,可以使用MATLAB软件再其他计算机上以其他浮点格式读取,同时也可以使用其他软件通过MATLAB的应用程序接口来进行读写操作。如果只是再MATLAB环境中处理数据,使用MAT文件格式是最方便的,这样会避免文件格式转换的带来的复杂操作。其中1处为显示代码,2处为执行保存指令后形成的文件,3为A.mat文件内容。这个比较简单,双击mat文件即可导入,也可以通过指令代码导入。MAT文件的操作比较简单,主要是同通过函数。
2023-09-07 10:36:16 5113
原创 蒙特卡洛方法使用原理解系-单位圆的面积计算
蒙特卡洛也成为统计模拟方法,提出以概率统计理论为指导的一类非常重要的数值计算方法,是指使用随机数(或者更常见的伪随机数)来解决很多计算问题的方法。蒙特卡罗方法的名字来源于摩纳哥的一个城市蒙特卡罗,该城市以赌博业闻名,而蒙特卡罗正是以概率为基础的方法。通过实验的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,将其作为问题的解。这里可以多运行基础,看实验结果,基本上更多次运行,可能看到更准确的结果。使用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。
2023-09-06 14:48:35 378
原创 Text文件在MATLAB中读写示例基础
要将一个数组导出一个有分隔符的ASCII码文件中,可以调用save函数。在调用时,要指定-ASCII参数,也可以调用dlmwrite函数。save函数用起来比较方便,而dlmwrite函数有更大的灵活性。它允许用户把任何一个字符指定为分隔符,也可以通过指定一个值域来导出一个数组的子数组。为了便于和外部程序进行交换,以及查看文件中的数据,也常常采用文本数据格式与外界交换数据。在文本格式中,数据采用ASCII码格式,可以使用字母和数字字符。可以在文本编辑器中查看和编辑ASCII文本数据。测试用用例,如下所示。
2023-09-06 11:38:31 824
原创 MATLAB中isequal函数转化为C语言
NaN(非数字)、NaT(非时间)、未定义的分类元素和 值被视为与其他元素不相等,彼此之间也不相等。有项目算法使用matlab中isequal函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。如果所有输入是等效的,则 tf = isequal(A1,A2,...,An) 返回逻辑值 1 (true)。即使每个结构体中的字段顺序不同,isequal 也将这些字段视为相同,因为它们的值相等。函数返回逻辑值 0 (false),因为这两个矩阵有些许不同,并非完全相等。
2023-08-31 16:04:50 624
原创 MATLAB中mod函数转化为C语言
b = mod(a,m) 返回 a 除以 m 后的余数,其中 a 是被除数,m 是除数。此函数通常称为取模运算,表达式为 b = a - m.*floor(a./m)。mod 函数遵从 mod(a,0) 返回 a 的约定。有项目算法使用matlab中mod函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。计算 23 对 5 取模。
2023-08-31 13:43:34 1041
原创 MATLAB中circshift函数转化为C语言
如果p是正数则实现A以行为单位,从上到下的循环移位。如果p是负数则实现从下到上的循环移位。如果p是正数则实现A以列为单位,从左到右的循环移位。如果p是负数则实现从右到左的循环移位。有项目算法使用matlab中circshift函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。如果p是正数则实现A从左到右的循环移位。如果p是负数则实现A从右到左的循环移位。实际maltab中使用如下代码所示,其中z为96000x1列向量。
2023-08-31 13:23:31 997
原创 MATLAB中符号变量的使用方法解析
MATLAB中常常使用符号变量,这里定义符号变量的函数是syms使用方法如下syms x y z其中,x、y、z 是符号变量,可以是任意字母、数字或下划线组合而成的字符串。代码以下是一个简单的例子,演示如何使用 syms 函数定义符号变量,并进行符号计算。%定义符号变量syms x y%求解方程disp(sol);%求导disp(df);%积分disp(I);举例2代码例程代码如下syms x;ezplot(y)结果举例3代码例程如下syms a;b=a+a^(-2)
2023-08-29 20:48:47 2137
原创 使用MATLAB解算炼油厂的选址
记得有一年的数据建模大赛,试题是炼油厂的选址,最后我们采用MATLAB编写(复制)蒙特卡洛算法,还到了省级一等奖,这里把仅有一些记忆和材料,放到这里来,用来纪念消失的青春。
2023-08-29 20:15:14 667
原创 C语言实现基于数组的环形缓冲队列
在C语言编程场景中,常常需要对一段不定长数据进行缓存。这里提出一种基于数组的环形缓冲队列,解决上述场景的问题。如下图所示,首先定义数据长度为buf[8],初始化指针为in/out。这时判断in==out为true,所以表明缓存内没有数据。如果把上述缓冲数组换成二维数组,代码可以编写如下。其中in为缓冲数据的输入指针。out为缓冲数据的输出指针。
2023-08-24 15:52:23 299
原创 MATLAB打开excel读取写入操作例程
使用uigetfile函数过滤非xlsx文件,找到需要读取的文件,首先判断文件是否存在,如果文件不存在,程序直接返回,存在记录下文件的路径。
2023-08-19 15:01:31 878
原创 matlab 2016读取mif文件
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据。生成QuartusII11.0可用的mif文件,有如下几种方式:方法1:利用自带的mif编辑器优点:对于小容量RAM可以快速方便的完成mif文件的编辑工作,不需要第三方软件的编辑;缺点:一旦数据量过大,一个一个的输入会使人崩溃;方法2:利用mif软件来生成无论使用什么编辑器,必须保证mif文件的格式如下:冒号左边是地址,右边是数据;分号结尾;
2023-08-15 17:13:36 765
原创 独立按键检测短按、长按,松手后响应操作
有项目使用独立按键检测,短按、长按。根据使用效果,发现松手后,也就是按键弹起后响应操作比较好操作。记得之前,博主写过一篇关于按键的检测的文章,但是过于复杂了。可能很难懂,这里就简单一点,只处理一个按键。并且这个按键,只检测短按、长按两种状态。
2023-06-09 20:15:40 2417
原创 C++/C按照时间命名保存bin文件
在Linux应用编程过程中,使用C++或者C语言保存、读取bin文件是比较常见的需求。这里详细记录一下使用C++保存bin文件,也可以使用C语言实现。
2023-06-09 19:49:50 1706 2
原创 Linux 应用程序信号量使用实战
在项目实施过程中,有个机制需要做两个线程之间的同步。具体需求如下:首先,线程1需要把资源读取到缓存其次,线程2才可以操作这块缓存上述两个动作顺序交替重复。
2023-06-09 18:26:03 1380
原创 stc15w404as使用keil做库,提供头文件,供调用
有个项目使用需要使用库,将代码封装起来,仅仅留下调试接口,给用户使用,调试一些参数。这样工程看起来更简单,也方便客户维护。也有一些使用场景,需要把自己的代码封装起来,这个是怕被别人窃取,自己的功夫白费了,也可以提供库的形式。当然也有如下场景当公司或者个人需要提供自己的编写的代码供他人调用时,而你或提供方并不想提供源代码(.c源代码),只想提供头文件.h(在头文件中申明函数)供他人调用,他人在调用时只需要知道调用的函数功能是什么,传递的参数是什么等,无需了解函数是怎样具体实现的。
2023-05-28 16:43:02 2144
原创 STM8、STM8S003F3P6 通过ZM470SX-MP模组实现lora通信
现在物联网就是很火,lora是避免不开的,也有个项目采用STM8S003F3P6 使用周立功的lora模组ZM470SX-MP实现lora通信。
2023-05-26 16:27:37 1459
原创 STM8、STM8S003F3P6 实现PWM控制电机HAS10227
有个项目需要控制一台风机的转速,使用STM8S003F3P6 输出PWM控制,这里就详细记录一下调试记录。STM8S003F3P6 实现PWM控制电机HAS10227
2023-05-26 15:32:28 3988
原创 STM8、STM8S003F3P6 双串口通信(IO模拟串口)
这里为什么要写串口通信,因为实际项目上使用了串口,STM8S003F3P6的串口简单啊,不值得一提。本文写的串口确实简单,因为这里我想先从简单的写起来,慢慢的把难的引出来。这里呢,做个提纲说明,本文涉及的串口,是使用STM8S003F3P6片上的IO模拟串口。由于STM8S003F3P6资源有限,双机通信资源时常不够,下篇文章提出用IO模拟串口的方式进行数据收发。IO模拟串口还是有一定的难度的,调试起来非常消耗时间,我记得这里我调试了一个多星期。
2023-05-25 17:45:36 2512
原创 STM8、STM8S003F3P6 双机串口通信(片上串口)
这里为什么要写串口通信,因为实际项目上使用了串口,STM8S003F3P6的串口简单啊,不值得一提。本文写的串口确实简单,因为这里我想先从简单的写起来,慢慢的把难的引出来。这里呢,做个提纲说明,本文设计的串口,是使用STM8S003F3P6片上的串口。由于STM8S003F3P6资源有限,双机通信资源时常不够,后面提出用IO模拟串口的方式进行数据收发。
2023-05-25 17:01:44 2839
原创 STM8 模拟iic接口调试温湿度传感器SHT3x驱动
项目实际使用SHT3x进行温湿度测量,主控芯片采用STM8S003F3P6,并且使用模拟IIC接口的硬件连接。
2023-05-24 21:34:54 1304
原创 STM8使用pwm接口调试GDS06灰尘传感器
刚好有项目使用GDS06这款传感器,这里简单做个记录。GDS06接口如下,这里支持串口和PWM的输出到MCU,由于项目采用STM8S003F3P6,资源极其有限。
2023-05-24 08:26:58 710 1
原创 STM8 调试红外遥控器HS003B
项目中使用STM8S003F3P6,控制红外遥控器HS003B,调试过程也遇到了很多问题,这里做个记录。问题1:长按按键问题,如果长按遥控的某个按键,应该是一直能响应该按键值(需要对接收状态、接收信息清零操作)问题2:按键响应不是很灵敏,有时候,有些按键按下了,却没有识别到(需要对接收状态、接收信息清零操作。
2023-05-23 08:34:55 694
原创 STM8 使用74HC164外扩IO
在嵌入式开发过程中,经常使用时、甚至设计时候,考虑成本等因素,需要外扩IO。这里就是使用STM8S003F3P6,这个芯片比较常用的,这个芯片封装很小,只有20个管脚的MCU,实际产品上用的非常多。由于 74HC164 不带锁存器功能,也就是说在每移一位数据都会实时反应在输出口上,这样会导致输出口有不必要的电平变化,虽然非常短暂但是,但是有些情况下这是不允许发生的,如果对时序逻辑有要求的话。很多项目上都会使用,但是实际需求上,需要控制特别多灯,还有数码管,所以采用74hc164进行外扩IO的设计。
2023-05-22 19:36:29 798
原创 STM32实现基于RS485的简单的Modbus协议
这里用STM32实现,其实可以搬移到其他MCU,之前有项目使用STM32实现Modbus协议这个场景比较正常,很多时候都能碰到这里主要是Modbus和变频器通信最常见的是使用Modbus实现传感器数据的采集,我记得之前用过一些传感器都是Modbus协议这就需要MCU实现Modbus协议,不过实际使用的Modbus协议往往都是简化版本的可能只是几条Modbus协议格式的指令而已初学者,网上一搜Modubus协议,往往越看越糊涂。
2023-05-21 10:03:03 8955 3
原创 STM32 多路ADC同时扫描采样
在项目实际应用中,刚好有需求需要使用多路ADC同时采样,这里就选择STM32 ADC多路ADC同时采样,这里简单说明下配置过程,以及使用步骤。
2023-05-20 14:54:00 6590 3
详解si5338 si53xx 设计使用及STM32 iic驱动设计全套资料原理图代码使用手册ClockBuilder设计工程
2024-09-04
NB6L295M MCU 设计参考,含工程代码使用说明手册等资料,代码工程在实际项目中多次重复使用,加速NB6L295M 的设计
2024-09-02
ADS7046(含工程代码、使用手册、datasheet)实际工程中使用代码,正确读取电压值,长期稳定运行采样,可以直接使用
2024-08-29
AD5270 AD5271 STM32 SPI驱动设计,针对AD5720原理图设计,与MCU采用SPI接口,工程实现设定数值
2024-08-29
24AA64-24LC64 STM32软件采用分层设计思想,方便替换EERPOM,方便随时添加、删除存储变量,含工程代码说明文档
2024-08-27
详细讲解STM32CubeIDE一步一步驱动LCD,原理图,代码,调试过程,提供驱动芯片为ST7735S
2024-07-25
zynq qspi启动、无SD卡、调试全过程,含vivado工程,使用Uboot源码,使用Kernel源码等调试过程使用资源
2024-06-14
zynq使用intc实现大于16路以上uartlite,内涵vivado工程,设备树,详细步骤说明文档
2023-12-12
深入理解zynq uart16550的使用(含vivado工程、设备树、内核配置、步骤文档),PL实现9路uart16550
2023-12-11
《一文精通zynq uartlite的使用》vivado工程,设备树文件,PL使用uartlite例化9路串口,详细步骤文档
2023-12-08
NB6L295M STM32 GD32 IO模拟驱动设计,内含有软件工程代码,实际项目中使用,有参考原理图和实际使用说明
2023-10-12
ad5665r STM32 GD32 IIC驱动设计,驱动程序在AD公司提供例程上修改得到,IO模拟的方式进行IIC通信
2023-10-11
MAX17058-MAX17059 STM32 iic 驱动设计内含有代码、详细设计过程文档,实际项目中使用代码,稳定可靠
2023-10-10
MATLAB编程plot函数用法举例
2023-09-09
MATLAB主、子函数的使用举例内含有例程说明
2023-09-09
MATLAB编程和C语言差异举例,举例说明,有示例代码参考
2023-09-09
MATLAB保存Figure中画好的图像为jpg格式,提供例程代码
2023-09-09
MATLAB图像文件的操作基础函数使用
2023-09-08
MATLAB基础 M文件编写,脚本式M文件 函数式M文件
2023-09-07
MATLAB创建avi文件,例程代码
2023-09-07
mat文件的读写. mat 文件 MATLAB读写操作
2023-09-07
MATLAB蒙特卡洛方法使用原理简单分析含代码,运行结果
2023-09-06
MATLAB读写Text文件基础示例
2023-09-06
MATLAB中isequal函数转化为C语言,有项目算法使用matlab中isequal函数进行运算,这里需要将转化为C语言
2023-08-31
MATLAB中mod函数转化为C语言,有项目算法使用matlab中mod函数进行运算,这里需要将转化为C语言,从而模拟算法运行
2023-08-31
MATLAB中circshift函数转化为C语言
2023-08-31
MATLAB基础-符号变量的使用示例,提供三个例程代码,并给出示例图
2023-08-29
使用蒙特卡洛算法解算炼油厂的选址MATLAB程序,提供试题照片,以及MATLAB代码
2023-08-29
数学建模大赛使用MATLAB解算炼油厂的选址,记得有一年的数据建模大赛试题以及MATLAB程序
2023-08-29
MATLAB矩阵基础操作,提供一些基础操作示例
2023-08-24
C语言实现基于数组的环形缓冲队列 ,通过图文简单介绍了缓存的写入和读出,并给出示例代码
2023-08-24
PyQt5基础-创建对话框,简述了PyQt5使用过程,使用QtWidgets、QPushButton类说明
2023-08-21
MATLAB读写excel文件历程含,内含有测试代码
2023-08-19
MATLAB打开excel读取写入操作例程 提供演示代码,测试文件,供初学者参考
2023-08-19
python 多线程的同步机制 以python2例程的方式讲解了python 多线程的同步 常用的方法,主要是锁、条件同步、队列
2023-08-18
python 队列Queue的使用 python2例程展示了队列Queue的使用过程,供学习参考使用
2023-08-18
python 条件同步的使用 条件同步:threading.Condition 多线程同步,python2例程
2023-08-18
python 锁的使用 python锁的使用例程python2可以直接运行,提供示例程序,供学习参考
2023-08-18
python 线程的使用 python线程基础知识,提供python2示例代码,供参考学习
2023-08-18
python 进程的使用 python基础 提供了python进程的使用示例代码,python2可以直接运行
2023-08-18
ImportError: No module named numpy
2022-09-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人