| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # Print a nice list of pins, their current settings, and available afs.
- # Requires pins_af.py from ports/stm32/build-PYBV10/ directory.
- import pyb
- import pins_af
- def af():
- max_name_width = 0
- max_af_width = 0
- for 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])
- break
- else:
- af_str = '%d' % pin_af
- else:
- 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('')
|