problem s STM32L476 - pin PB4 nefunguje jako GPIO
Vojtěch Petrucha
petrucha na volny.cz
Pondělí Květen 27 12:33:35 CEST 2019
Zdravim,
trapim se tu s STM32L476RG... kdyz to zjednodusim, mam na pin PB4 pripojenou ledku a tu bych potreboval rozsvitit. Kdyz to udelam v Atollic (s naklikanim kodu v cubemx) tak to funguje bezproblemu. problem je, ze ten PB4 je NJTRST in pull-up a je potreba ho prepnout z te alternating funkce na normalni vystupni pin.
nicmene bych to potreboval zprovoznit i v mbed a to se mi nedari (nastavene Nucleo-L476RG). normalni definice pinu na vystup nestaci (DigitalOut ledN(PB_4);).
zkusil jsem tedy funkci prepnout zapisem do registru (inspirace z cubemx, viz nize)
RCC->AHB2ENR |= 0x10; //projistotu zapnout hodiny pro PB
wait(0.5);
GPIOB->ODR &= 0xFFFFFFEF; // PB4 to 0
GPIOB->PUPDR &= 0xFFFFFCFF; //no pull ups on PB4
GPIOB->MODER &= 0xFFFFFDFF; //set PB4 to general output pin moder[4][1:0] '01'
GPIOB->MODER |= 0x00000100;
GPIOB->OTYPER &= 0xFFFFFFEF; //set as pushpull output type - clear PB4 bit
kdyz hodnotu z registru MODER prectu (vypisem pres UART), dostanu FFD4A57F coz dava na zadane pozici osmeho a devateho bitu 01 coz je GPIO a ne AF. (viz RM0394)
po startu LEDka slabe sviti diky tomu pull-up co je tam pres NJTRST, pak zhasne, ale rozsvitit se mi ji nedari...
Nemel by prosim nekdo napad co delam blbe?
Diky moc
V.
Další informace o konferenci Hw-list