# Print a nice list of pins, their current settings, and available afs.# Requires pins_af.py from ports/stm32/build-PYBV10/ directory.import pybimport pins_afdef af():max_name_width = 0max_af_width = 0for pin_entry in pins_af.PINS_AF:max_name_width = max(max_name_width, len(pin_entry[0]))for af_entry in pin_entry[1:]:max_af_width = max(max_af_width, len(af_entry[1]))for pin_entry in pins_af.PINS_AF:pin_name = pin_entry[0]print("%-*s " % (max_name_width, pin_name), end="")for af_entry in pin_entry[1:]:print("%2d: %-*s " % (af_entry[0], max_af_width, af_entry[1]), end="")print("")def pins():mode_str = {pyb.Pin.IN: "IN",pyb.Pin.OUT_PP: "OUT_PP",pyb.Pin.OUT_OD: "OUT_OD",pyb.Pin.AF_PP: "AF_PP",pyb.Pin.AF_OD: "AF_OD",pyb.Pin.ANALOG: "ANALOG",}pull_str = {pyb.Pin.PULL_NONE: "", pyb.Pin.PULL_UP: "PULL_UP", pyb.Pin.PULL_DOWN: "PULL_DOWN"}width = [0, 0, 0, 0]rows = []for pin_entry in pins_af.PINS_AF:row = []pin_name = pin_entry[0]pin = pyb.Pin(pin_name)pin_mode = pin.mode()row.append(pin_name)row.append(mode_str[pin_mode])row.append(pull_str[pin.pull()])if pin_mode == pyb.Pin.AF_PP or pin_mode == pyb.Pin.AF_OD:pin_af = pin.af()for af_entry in pin_entry[1:]:if pin_af == af_entry[0]:af_str = "%d: %s" % (pin_af, af_entry[1])breakelse:af_str = "%d" % pin_afelse:af_str = ""row.append(af_str)for col in range(len(width)):width[col] = max(width[col], len(row[col]))rows.append(row)for row in rows:for col in range(len(width)):print("%-*s " % (width[col], row[col]), end="")print("")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。