Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 5 months ago.
UART clash with device initialization
Hi everyone, I am struggling with an UART device using it with my nucleo.
I am using the F401RE nucleo with the mikroe RFID click, the click uses the ST CR95HF http://www.st.com/content/st_com/en/products/memories/nfc-rfid-memories-and-transceivers/nfc-rfid-transceivers/cr95hf.html
in the datasheet, the RFID needs to receive a pull down pulse for about 150us on the rx pin (connected to my tx pin on the nucleo PA_9) and then it will be active.
problem is that I declare the RFID as a serial port globally, so I cant set the pin as a digital output outside the main function, giving me a code similar to this:
- include "mbed.h" Serial RFID(PA_9, PA_10);tx and rx
int main(void) { DigitalOut RF_tx(PA_9); RF_tx = 0; wait_us(10); RF_tx = 1; wait_us(200); RF_tx = 0; wait_us(1); while(1) { do stuff } }
is there a way that I can use the uart tx pin as a digital pin for a bit and set it as a uart tx pin again after? thanks
1 Answer
8 years, 5 months ago.
Well one way is to declare the serial port a second time after sending the pulse. This will reconfigure the pins back to UART mode. The second time you can declare the port inside a block { Serial RFID(PA_9, PA_10); } so the second "serial" object doesn't persist.
it worked! I thought you had to declare serial outside the main loop. simple fix.
one more thing, do you know how to use NVIC_Disable_Irq() in a nucleo f401re? im trying to figure it out, but its not working when I try
NVIC_DisableIRQ(RFID.RxIrq)
I am not sure how to use NVIC_Disable_Irq, I cant find the library that may have the function and im not sure what to place in the brackets. thanks!
posted by 14 Jun 2016I can't say with any certainty but if you search on "NVIC_Disable_Irq" you'll probably hit the right answer or something close.
More importantly: are you certain you need to disable the interrupt? If you have small critical sections you might consider masking all interrupts, alternatively if you are not using the callback then detach it.
posted by 14 Jun 2016well, I am trying to receive something in particular, and I am getting partial gibberish sometimes, exploring options, so I thought maybe disabling interrupts would work. but detaching the interrupt isnt a bad idea. let me try some things. for now I think this is sufficient, I will post a question again if push comes to shove. thanks a lot, appreciate the help
posted by 15 Jun 2016