Код
#elif defined(STM32L152xx)
#define _setL(port,bit) do { port -> BSRRH |= bit; } while(0) // возможно, | лишний символ
#define _setH(port,bit) do { port -> BSRRL |= bit; } while(0)
#define _clrL(port,bit) do { port -> BSRRL |= bit; } while(0)
#define _clrH(port,bit) do { port -> BSRRH |= bit; } while(0)
#define _cpl(port,bit,val) do {
#define _setL(port,bit) do { port -> BSRRH |= bit; } while(0) // возможно, | лишний символ
#define _setH(port,bit) do { port -> BSRRL |= bit; } while(0)
#define _clrL(port,bit) do { port -> BSRRL |= bit; } while(0)
#define _clrH(port,bit) do { port -> BSRRH |= bit; } while(0)
#define _cpl(port,bit,val) do {
вот с cpl не знаю. У нас по очереди нужно записывать бит в регистр
port -> BSRRH |= bit
потом в
port -> BSRRL |= bit
никакого XOR, как с АВР.
по идее, нужно делать проверку if ()
бита в порте GPIOx_IDR
но что-то не хочет компилиться.