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.
7 years, 2 months ago. This question has been closed. Reason: Too broad - no single answer
Problem with serial communication
Hello,
my project is it to build a light barrier with ir receiver (38kHz) via PWM. With a LCD, it works well, but with serial communication (TX,RX) my terminal program shows only tpass= 0.05s (+/- 0.01s).
I am working with nucleo f401re.
My program:
#include "mbed.h" #include "freetronicsLCDShield.h" //Serial bt(PA_11, PA_12);//Tx, Rx //Serial pc (USBTX, USBRX); Timer timer; freetronicsLCDShield lcd(D8, D9, D4, D5, D6, D7, D10, A0); AnalogIn ain(PA_1); PwmOut IRLED(PA_15); float BackLightValue = 1.0; void start(){ timer.start(); } void stop(){ timer.stop(); lcd.setCursorPosition(1, 0); lcd.printf("tpass= %f s", timer.read()); bt.printf("tpass= %f s", timer.read()); pc.printf("The time taken was %f seconds\n", timer.read()); timer.reset(); } void pwm(){ IRLED.period(1.0/38000.0); IRLED = 0.5; wait_us(100); IRLED = 0; wait_us(1); } int main() { bt.baud(9600); lcd.setBackLight(BackLightValue); lcd.setCursorPosition(0, 0); lcd.printf("BackLight %f",BackLightValue); while(1){ while(1){ pwm(); if(ain>0.4f){ start(); break; } } while(1){ pwm(); if(ain<0.3f){ stop(); break; } } }
Thanks for your help.
What do you mean with "but with serial communication (TX,RX) my terminal program shows only tpass= 0.05s (+/- 0.01s)."?
posted by Jan Jongboom 03 Oct 2017