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