pio19
set PIO as output high
PioSetMapPins32Bank(PIO >> 5, (1UL << (PIO & 31)), (1UL << (PIO & 31)));
PioSetDir32Bank(PIO >> 5, (1UL << (PIO & 31)), (1UL << (PIO & 31)));
PioSet32Bank(PIO >> 5, (1UL << (PIO & 31)), (1UL << (PIO & 31)));
set pio as output low
PioSetMapPins32Bank(PIO >> 5, (1UL << (PIO & 31)), (1UL << (PIO & 31)));
PioSetDir32Bank(PIO >> 5, (1UL << (PIO & 31)), (1UL << (PIO & 31)));
PioSet32Bank(PIO >> 5, (1UL << (PIO & 31)), 0);
汇总以上定义pio api 如下:
void customer_set_pio_output_highlow(uint32 pio, bool high_low)
{
uint16 bank;
uint32 mask;
/* Setup pio as output high or low level*/
bank = PIO2BANK(pio);
mask = PIO2MASK(pio);
PioSetMapPins32Bank(bank, mask, mask);
PioSetDir32Bank(bank, mask, mask);
if(high_low)
{
PioSet32Bank(bank, mask, mask);
}
else
{
PioSet32Bank(bank, mask, 0);
}
}