Arduino micro becomes not recognized when using Serial1

I'm trying to send analog reading along the hardware serial port of arduino micro.

The following code works just fine:

#include "TimerOne.h"
#define UART Serial
void setup()
{
	UART.begin(115200);
	Timer1.initialize(1000000/2500);//2500Hz
	Timer1.attachInterrupt(takeReading);
}

void loop()
{
}

void takeReading()
{
	double FR=((double)analogRead(0)/1023)*5;
	double FL=((double)analogRead(1)/1023)*5;
	double BR=((double)analogRead(2)/1023)*5;
	double BL=((double)analogRead(3)/1023)*5;
	String f ="A"+String(FR,4)+" "+String(FL,4)+" "+String(BR,4)+" "+String(BL,4)+"B\n";
	UART.print(f);
}

I can see the readings on the serial monitor.

The problem is that when I change from Serial to Serial1 (to use tx and rx pins) the arduino micro stops getting recognized by my pc. the only way it works is when I decrease the sampling rate from 2.5Khz to 100Hz (Which is way too low for me).

Any help will be much appreciated!

According to your output string, i calculate the real data rate.

Output String example:
"A5.1234 5.1234 5.1234 5.1234B\n" total is 30 bytes.

In Serial 8N1 foarmat.
30 bytes = 30 * (8 + 2) = 300 bits

At 2500Hz
300 * 2500 = 750,000 bps

it is exceed the baud rate of the serial 115,200 bps.

Thank you,

So why does the code work when using Serial (and not Serial1)?

The code works only when the frequency is less than 200Hz, above that it stops working, why?