Siemens-NXUG二次开发-导入与导出(可移除参数)prt文件[Python UF][20240121]

Siemens-NXUG二次开发-导入与导出(可移除参数)prt文件[Python UF][20240121]

  • 1.python uf函数
    • 1.1 NXOpen.UF.Part.Import
    • 1.2 NXOpen.UF.Part.ImportPartModes
    • 1.3 NXOpen.UF.Group.AskGroupData
    • 1.4 NXOpen.UF.Obj.AskTypeAndSubtype
    • 1.5 NXOpen.UF.Part.Export
    • 1.6 NXOpen.UF.Part.ExportWithOptions
    • 1.7 NXOpen.UF.Part.ExportOptions
    • 1.8 UF_PART_export_params_mode_e
    • 1.9 UF_PART_export_exp_mode_t
  • 2.示例代码
    • 2.1 pyuf_import_prt.py
    • 2.2 pyuf_export_prt.py
  • 3.运行结果
    • 3.1 内部模式
    • 3.2 外部模式

1.python uf函数

1.1 NXOpen.UF.Part.Import

# 内部和外部模式可用
"""
官方文档翻译:将NX零件或Solid Edge零件(.par或.psm文件扩展名)从磁盘合并到当前工作零件中。输入在“模式”结构中指定。Solid Edge零件将作为未参数化的实体导入。
请参阅模式结构的说明。
返回值:一个tag,元素类型为python的int类型,表示导入prt中体的组tag,注意是“组”tag,“组”tag包含导入内容的tag,需要通过查询组的函数获取组内成员tag,拿到具体的体tag。
"""
def NXOpen.UF.Part.Import(self, file_name, modes, dest_csys, dest_point, scale)'''file_name: (python str),文件名(包含路径)modes:(NXOpen.UF.Part.ImportPartModes) 导入模式类实例对象(需要设置过具体属性)dest_csys:(python  list of float, len:6) 被导入零件安放的目标坐标系,dest_csys[0.2]是X方向矢量,dest_csys[3.5]是y方向矢量。这些被用作UF_MTX3_initialize的输入,以创建完整的坐标系矩阵。dest_point:(python  list of float, len:3) 被导入零件的目标放置点scale:(python float) 被导入零件的缩放大小'''

1.2 NXOpen.UF.Part.ImportPartModes

# 内部和外部模式可用
"""
官方文档翻译:零件导入中使用的数据结构和常量。
"""
'''
layer_mode
int
0=在工作层上合并
1=在原始图层上合并group_mode
int
0=合并未分组
1=合并分组csys_mode
int
Open API应用程序未使用plist_mode
int
注意:不再使用plist_modeview_mode
int
0=不检索视图和布局。
1=检索视图和布局。cam_mode
logical
如果为true,则合并工具和参数集,如果为false,则不要。use_search_dirs
logical
这不是Open API应用程序使用的
'''
def NXOpen.UF.Part.ImportPartModes.CamMode(self)	
def NXOpen.UF.Part.ImportPartModes.CamMode(	self, value)		
def NXOpen.UF.Part.ImportPartModes.CsysMode(self)	
def NXOpen.UF.Part.ImportPartModes.CsysMode(self, value )		
def NXOpen.UF.Part.ImportPartModes.GroupMode(self)	
def NXOpen.UF.Part.ImportPartModes.GroupMode(self, value)		
def NXOpen.UF.Part.ImportPartModes.LayerMode(self)	
def NXOpen.UF.Part.ImportPartModes.LayerMode(self, value)		
def NXOpen.UF.Part.ImportPartModes.PlistMode(self)	
def NXOpen.UF.Part.ImportPartModes.PlistMode(self, value)		
def NXOpen.UF.Part.ImportPartModes.UseSearchDirs(self)	
def NXOpen.UF.Part.ImportPartModes.UseSearchDirs(self, value)		
def NXOpen.UF.Part.ImportPartModes.ViewMode(self)	
def NXOpen.UF.Part.ImportPartModes.ViewMode(self, value)	

1.3 NXOpen.UF.Group.AskGroupData

"""
官方文档翻译:查询组的成员。使用group_members后,使用UF_free释放分配内存。
"""
def NXOpen.UF.Group.AskGroupData(self, group_tag)'''group_tag:(python int) 组的tag返回值: 一个元组(list of Tag, int),0-list of Tag:一个列表,包含组成员的tag。如果组成员的数量为0,则这将是一个NULL_TAG,使用UF_free(group_members)释放内存;1-int:组内成员个数'''

1.4 NXOpen.UF.Obj.AskTypeAndSubtype

"""
官方文档翻译:返回标记的NX对象的对象类型和子类型。这些对象中的大多数都列在uf_object_types.h头文件中。
除了uf_object_types.h中列出的对象之外,还有其他由标记唯一标识的NX对象。这些对象包括表达式和部件。这些对象未在uf_object_types.h头文件中列出,它们生成类型为uf_OBJ_EXPR_type和子类型为0的uf_OBJ_PART_type。
此函数为表达式和部件返回的类型和子类型在任何其他Open API例程中都没有用处。提供这些类型只是为了允许您通过NX对象的标识符(即其标签)来确定NX对象类,这可以帮助您确定可以与该对象一起使用的其他Open API例程。有关对象类和可用于这些对象的开放式API例程的更详细讨论,请参阅开放式API程序员指南“NX对象模型”。
"""
def NXOpen.UF.Obj.AskTypeAndSubtype(self, object_id)	'''object_id:(python int) 对象tag)返回值:一个元组(int, int),0-type;1-subtype'''

1.5 NXOpen.UF.Part.Export

# 内部和外部模式可用
"""
官方文档翻译:将指定的对象导出到指定的prt。对象将复制到目标prt中。调用此函数相当于使用以下选项调用UF_PART_export_with_options:new_PART=true, params_mode=UF_PART_maintain_params, expression_mode=UF_PART_copy_exp_deeply
有关此函数行为的更多详细信息以及返回值的描述,请参阅UF_PART_export_with_options。
"""
def NXOpen.UF.Part.Export(self, part_name, num_objects, object_array)	'''part_name:(python str) 导出到的目标文件名.num_objects:(python int) ,object_array列表的长度:有n个要被导出的对象object_array:(python  list of Tag) 要被导出对象的tag列表.'''

1.6 NXOpen.UF.Part.ExportWithOptions

# 内部和外部模式可用
"""
官方文档翻译:将指定的对象导出到指定的prt。对象将复制到目标prt中。给定对象所依赖的任何其他可转移对象也将导出。请注意,如果没有显示部件,则导出操作将失败。
注意:对象引用和prt引用不可导出。
如果一个对象依赖于另一个不可导出的对象,则不导出该对象,并返回警告值UF_PART_warn_objects_not_copied。但是,操作仍在继续,并且仍会导出其他请求的可导出对象。这种情况可能出现在两种情况下。
1.如果绘图对象的关联几何图形未导出,则不导出该绘图对象。
2.如果删除了要素参数,则无法导出基准。
如果发生任何其他错误,则操作不会成功,并返回相应的错误代码。
options参数控制此操作的行为:请参阅表格
"""
def NXOpen.UF.Part.ExportWithOptions(self, part_name, num_objects, object_array, options)	'''part_name:(python str) 导出到的目标文件名.num_objects:(python int) ,object_array列表的长度:有n个要被导出的对象object_array:(python  list of Tag) 要被导出对象的tag列表.options:(NXOpen.UF.Part.ExportOptions) 指向结构体的指针(实例对象),该结构包含用于控制对象导出方式的选项。'''

1.7 NXOpen.UF.Part.ExportOptions

# 内部和外部模式可用
"""
官方文档翻译:描述提供给导出操作的选项的类型。
"""
'''
new_part
logical
确定是否应将对象导出到新prt中。params_mode
UF_PART_export_params_mode_t
确定如何复制实体参数。expression_mode
UF_PART_export_exp_mode_t
确定如何复制表达式。
'''
def NXOpen.UF.Part.ExportOptions.ExpressionMode(self)
def NXOpen.UF.Part.ExportOptions.ExpressionMode(self, value)	
def NXOpen.UF.Part.ExportOptions.NewPart(self)
def NXOpen.UF.Part.ExportOptions.NewPart(self, value)
def NXOpen.UF.Part.ExportOptions.ParamsMode(self)
def NXOpen.UF.Part.ExportOptions.ParamsMode(self, value)

1.8 UF_PART_export_params_mode_e

// 内部和外部模式可用
/*
官方文档翻译:描述在导出操作期间应如何处理实体参数的类型,注意:UF_PART_maintain_all_params是V15.0中新引入的选项。
在V15.0中,UF_PART_maintain_params和UF_PART_remove_params的行为与早期版本中的行为相同。
*/
enum UF_PART_export_params_mode_e
{/*在导出操作期间应保持实体参数。请注意,使用此选项,如果实体参数的有效性依赖于其他对象,则不会复制这些参数,除非这些其他对象无论如何都要复制。*/UF_PART_maintain_params, /* 实体参数将在导出操作期间删除。复制到目标prt中的实体将没有实体参数。*/UF_PART_remove_params, /*在导出操作期间,应保持所有实体参数。源对象中的所有实体参数都将复制到目标对象中。请注意,保持参数有效性所需的额外对象也将被复制。*/UF_PART_maintain_all_params 
};

1.9 UF_PART_export_exp_mode_t

// 内部和外部模式可用
/*
官方文档翻译:描述在导出操作期间应如何处理表达式的类型:
*/
enum UF_PART_export_exp_mode_e
{/*表达方式会被深复制。如果一个表达式引用了同一部分中的另一个表达式,则该引用的表达式也将被复制。但是,不会复制其他prt中的任何引用表达式。*/UF_PART_copy_exp_deeply, /*表达式将被粗略地复制。如果一个表达式引用另一个表达式,则引用表达式的副本将引用同一个被引用的表达式。对于表达式的部分间引用和部分内引用都会发生这种情况。*/UF_PART_copy_exp_shallowly 
} ;

2.示例代码

2.1 pyuf_import_prt.py

import NXOpen.UF as UFimport datetimedef get_uf_session():# 获取当前UF会话return UF.UFSession.GetUFSession()def getNowLocalString(split):if split == '\n' or split == '\r' or split == '\t' or split == '*':return ""if split == '\0':return datetime.datetime.now().strftime("%Y%m%d%H%M%S")return datetime.datetime.now().strftime("%Y{}%m{}%d{}%H{}%M{}%S".format(split, split, split, split, split))def get_group_member(group_tag):"""功能:从组tag中获取成员tag"""pyuf_group_instance = the_pyuf_session.Group# (list of Tag, int)return pyuf_group_instance.AskGroupData(group_tag)def get_obj_type_and_subType(obj_tag):"""功能:获取对象的类型"""pyuf_obj_instance = the_pyuf_session.Objreturn pyuf_obj_instance.AskTypeAndSubtype(obj_tag)def pyuf_new_prt(the_pyuf_session, new_prt_file_name, units = 1):"""功能:创建一个指定文件路径和文件名的.prt文件,默认单位制是米(m)"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# New方法位于Part类对象中new_prt_file_tag = pyuf_part_instance.New(new_prt_file_name, units)def pyuf_save_prt(the_pyuf_session):"""功能:保存当前工作part"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Save方法位于Part类对象中return pyuf_part_instance.Save()def pyuf_import_prt(the_pyuf_session, file_name, modes = {"LayerMode":0, "GroupMode":1, "CsysMode":0, "PlistMode":0, "ViewMode":0, "CamMode":False, "UseSearchDirs":False}, dest_csys = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0], dest_point = [0.0, 0.0, 0.0], scale = 1.000000):"""功能:将指定.prt文件导入到当前工作prt中"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# 由于要对mtx进行操作,因此需要获取Mtx3示例对象pyuf_mtx3_instance = the_pyuf_session.Mtx3importPartModes = pyuf_part_instance.ImportPartModes()importPartModes.LayerMode = modes['LayerMode']importPartModes.GroupMode = modes['GroupMode']importPartModes.CsysMode = modes['CsysMode']importPartModes.PlistMode = modes['PlistMode']importPartModes.ViewMode = modes['ViewMode']importPartModes.CamMode = modes['CamMode']importPartModes.UseSearchDirs = modes['UseSearchDirs']# 初始化坐标系mtxmtx3 = pyuf_mtx3_instance.Initialize(dest_csys[0:3], dest_csys[3:])# 被导入的prt文件会以gruop的形式导入得到组tag,而非特征或体tagreturn pyuf_part_instance.Import(file_name, importPartModes, mtx3[0:6], dest_point, scale)if __name__ == '__main__':# 获取uf sessionthe_pyuf_session = get_uf_session()# 将要导入prt文件路径与名称import_prt_file_name = 'D:\\pyuf_import_export_prt_test.prt'# 创建一个新.prt文件new_prt_file_tag = pyuf_new_prt(the_pyuf_session, 'D:\\' + getNowLocalString('\0') + '.prt')# 执行导入操作,获取组tagimport_prt_group_tag = pyuf_import_prt(the_pyuf_session, import_prt_file_name)pyuf_save_prt(the_pyuf_session)# 从组tag中获取实体成员tagsolid_body_tag_list = []if import_prt_group_tag is not None and import_prt_group_tag != 0:member_tag_tuple = get_group_member(import_prt_group_tag)member_tag_tuple_value = member_tag_tuple[0]for item_tag in member_tag_tuple_value:type_subtype = get_obj_type_and_subType(item_tag)# 实体的type是70、subtype是0if type_subtype[0] == 70 and type_subtype[1] == 0:solid_body_tag_list.append(item_tag)# 外部模式或内部模式运行标识flag = 'internal'# 外部模式运行,会在命令行中打印,但内部模式运行则无反应,因在UF.UI类中操作,才可在NX/UG界面显示数据if flag == 'external':print('\nimport_prt_group_tag is:{}}'.format(import_prt_group_tag))elif flag == 'internal':# 由于与NX/UG界面UI操作的方法都在UI类中,因此先获取UF.UI示例对象pyuf_ui_instance = the_pyuf_session.Ui# 判断信息窗口是否打开if pyuf_ui_instance.IsListingWindowOpen() == False:# 信息窗口未打开,先要将其打开# 打开信息窗口pyuf_ui_instance.OpenListingWindow()# 向信息窗口写入内容pyuf_ui_instance.WriteListingWindow('\nimport_prt_file_name is:{}'.format(import_prt_file_name))pyuf_ui_instance.WriteListingWindow('\nimport_prt_group_tag is:{}'.format(import_prt_group_tag))pyuf_ui_instance.WriteListingWindow('\nsolid_body_tag_list is:{}'.format(solid_body_tag_list))# 将信息窗口的内容保存到指定文件中pyuf_ui_instance.SaveListingWindow('D:\\pyuf_listingwindow_content_test.txt')# 关闭信息窗口#pyuf_ui_instance.ExitListingWindow()

2.2 pyuf_export_prt.py

import NXOpen.UF as UFimport datetimedef get_uf_session():# 获取当前UF会话return UF.UFSession.GetUFSession()def getNowLocalString(split):if split == '\n' or split == '\r' or split == '\t' or split == '*':return ""if split == '\0':return datetime.datetime.now().strftime("%Y%m%d%H%M%S")return datetime.datetime.now().strftime("%Y{}%m{}%d{}%H{}%M{}%S".format(split, split, split, split, split))def get_part_solid_body_tags(the_pyuf_session, part_file_tag):"""功能:获取.prt文件中的所有solidbody实体的tag标识类型: 对象获取."""pyuf_obj_instance = the_pyuf_session.Objsolid_body_tag_list = []solid_body_tag = 0while True:solid_body_tag = pyuf_obj_instance.CycleObjsInPart(part_file_tag, UF.UFConstants.UF_solid_type, solid_body_tag)if solid_body_tag == 0:breaktype, subtype= pyuf_obj_instance.AskTypeAndSubtype(solid_body_tag)if subtype == 0:solid_body_tag_list.append(solid_body_tag)return solid_body_tag_listdef pyuf_open_prt(the_pyuf_session, open_prt_file_name):"""功能:打开一个指定文件路径和文件名的.prt文件"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Open方法位于Part类对象中return pyuf_part_instance.Open(open_prt_file_name)def pyuf_close_prt(the_pyuf_session, part_tag, scope, mode):"""功能:关闭当前工作part"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Close方法位于Part类对象中return pyuf_part_instance.Close(part_tag, scope, mode)def pyuf_export_prt(the_pyuf_session, part_name, num_objects, object_array):"""功能:导出objct_array中的tag到指定part_name文件中"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Part# Export方法位于Part类对象中return pyuf_part_instance.Export(part_name, num_objects, object_array)def pyuf_export_with_options_prt(the_pyuf_session, part_name, num_objects, object_array, options = [True, 1, 1]):"""功能:导出objct_array中的tag到指定part_name文件中,可以设置导出选项,例如移除参数!"""# 由于要对Part进行操作,因此需要获取Part实例对象pyuf_part_instance = the_pyuf_session.Partexport_options = the_pyuf_session.Part.ExportOptions()export_options.NewPart = options[0]export_options.ParamsMode = pyuf_part_instance.ExportParamsMode.ValueOf(options[1])export_options.ExpressionMode = pyuf_part_instance.ExportExpMode.ValueOf(options[2])# Export方法位于Part类对象中return pyuf_part_instance.ExportWithOptions(part_name, num_objects, object_array, export_options)if __name__ == '__main__':# 获取uf sessionthe_pyuf_session = get_uf_session()# 将要导出prt文件路径与名称export_prt_file_name = 'D:\\pyuf_import_export_prt_test.prt'# 打开一个.prt文件open_prt_file_tag = pyuf_open_prt(the_pyuf_session, export_prt_file_name)[0]# 获取该prt中所有实体tag的列表solid_body_tag_list = get_part_solid_body_tags(the_pyuf_session, open_prt_file_tag)# 执行导出操作,导出列表中的第1个实体result_a = pyuf_export_prt(the_pyuf_session, 'D:\\' + getNowLocalString('\0') + '_body0.prt', 1, [solid_body_tag_list[0]])# 执行导出操作,导出列表中的第2实体并移除参数result_b = pyuf_export_with_options_prt(the_pyuf_session, 'D:\\' + getNowLocalString('\0') + '_body1.prt', 1, [solid_body_tag_list[1]])# 外部模式或内部模式运行标识flag = 'internal'# 外部模式运行,会在命令行中打印,但内部模式运行则无反应,因在UF.UI类中操作,才可在NX/UG界面显示数据if flag == 'external':passelif flag == 'internal':# 由于与NX/UG界面UI操作的方法都在UI类中,因此先获取UF.UI示例对象pyuf_ui_instance = the_pyuf_session.Ui# 判断信息窗口是否打开if pyuf_ui_instance.IsListingWindowOpen() == False:# 信息窗口未打开,先要将其打开# 打开信息窗口pyuf_ui_instance.OpenListingWindow()# 向信息窗口写入内容pyuf_ui_instance.WriteListingWindow('\npyuf_export_prt result is:{}'.format(result_a))pyuf_ui_instance.WriteListingWindow('\npyuf_export_with_options_prt result is:{}'.format(result_b))# 将信息窗口的内容保存到指定文件中pyuf_ui_instance.SaveListingWindow('D:\\pyuf_listingwindow_content_test.txt')# 关闭信息窗口#pyuf_ui_instance.ExitListingWindow()

3.运行结果

3.1 内部模式

选中要运行的.py文件后,点击“管道通路”即可。
在这里插入图片描述

在这里插入图片描述

运行结果[导入]:
在这里插入图片描述
运行结果[无移除参数导出]:
在这里插入图片描述
运行结果[除参数导出]:
在这里插入图片描述

3.2 外部模式

cmd命令:“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_import_prt.py
cmd命令:“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_export_prt.py

powershell命令:&“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_import_prt.py
powershell命令:&“D:\Siemens\NX 12.0\NXBIN\run_journal.exe” pyuf_export_prt.py

运行结果:同上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/418881.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mariadb数据库从入门到精通

mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化一、实验前提二、mariadb数据库的安装三、mariadb数据库安全初始化3.1 设定数据库基本的安全初始化3.2关闭对外开放端口 系列文章目录一、查看数据库二、进入库并且查看…

竞赛保研 机器视觉人体跌倒检测系统 - opencv python

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉人体跌倒检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数&…

Flutter 与 Android原生 相互通信:BasicMessageChannel、MethodChannel、EventChannel

前言 本文主要讲解,使用不同的 Channel 让 Flutter 和 Android原生 进行通信,由于只是讲解两端通信,所以可视化效果不好; 不过我写了一篇专门讲解 Flutter 嵌入 Android原生View的文章 Flutter 页面嵌入 Android原生 View-CSDN…

第二课:BERT

文章目录 第二课:BERT1、学习总结:为什么要学习BERT?预训练模型的发展历程BERT结构BERT 输入BERT EmbeddingBERT 模型构建BERT self-attention 层BERT self-attention 输出层BERT feed-forward 层BERT 最后的Add&NormBERT EncoderBERT 输…

BlueBunny:基于低功耗蓝牙的Bash bunny命令控制C2框架

关于BlueBunny BlueBunny是一款功能强大的命令控制框架,该工具基于低功耗蓝牙实现数据通信,可以帮助广大研究人员直接通过蓝牙将控制指令发送给Bash Bunny。 什么是Bash Bunny Bash Bunny是一款类似于USB Rubber Ducky的多功能USB攻击工具(…

Mysql 编译安装部署

Mysql 编译安装部署 环境: 172.20.26.198(Centos7.6) 源码安装Mysql-5.7 大概步骤如下: 1、上传mysql-5.7.28.tar.gz 、boost_1_59_0.tar 到/usr/src 目录下 2、安装依赖 3、cmake 4、make && make install 5、…

MyBatis 系列:MyBatis 源码环境搭建

文章目录 一、环境准备二、下载 MyBatis 源码和 MyBatis-Parent 源码三、创建空项目、导入项目四、编译 mybatis-parent五、编译 mybatis六、测试总结 一、环境准备 jdk:17 maven:3.9.5 二、下载 MyBatis 源码和 MyBatis-Parent 源码 Mybatis&#x…

外呼机器人有什么优势?

外呼机器人有什么优势?值得受到大多数电销企业的追捧! 1、电话外呼效率高: 每天可拨打的电话数量是人工的5-10倍,人工一天只能拨打200-300通电话,机器人每天能打3000通电话以上,无须休息,按照…

数学建模实战Matlab绘图

二维曲线、散点图 绘图命令:plot(x,y,’line specifiers’,’PropertyName’,PropertyValue) 例子:绘图表示年收入与年份的关系 ‘--r*’:--设置线型;r:设置颜色为红色;*节点型号 ‘linewidth’:设置线宽&#xff1…

el-upload中的before-upload不生效

我们先来看看官方对before-upload的定义 before-upload是在上传文件时触发,不是添加文件时触发,添加文件时触发 on-change。 所以如果我们要在添加文件时,对文件的大小和后缀等等进行判断,可以用 on-change 方法来实现。 checkSu…

云原生场景下,AIGC 模型服务的工程挑战和应对

作者:徐之浩、车漾 “成本”、“性能”和 “效率”正在成为影响大模型生产和应用的三个核心因素,也是企业基础设施在面临生产、使用大模型时的全新挑战。AI 领域的快速发展不仅需要算法的突破,也需要工程的创新。 大模型推理对基础设施带来…

MSPM0L1306例程学习-UART部分(2)

MSPM0L1306例程学习系列 1.背景介绍 写在前边的话: 这个系列比较简单,主要是围绕TI官网给出的SDK例程进行讲解和注释。并没有针对模块的具体使用方法进行描述。所有的例程均来自MSPM0 SDK的安装包,具体可到官网下载并安装: https://www.ti…