Hola, tengo problemas para enviar los datos adquiridos de un MPU6050 GY-521 por el puerto serial hacia la PC con un módulo USB-TTL FT232RL
http://buyhere22.com/components/usb-ttl-ft232rl-pinout.png hacia la PC.
En la PC tengo Forms creado en C# que sí recibe datos. Esto lo confirmé porque usé el Virtual Serial Port y HTerm para simular el envío de datos.
La parte del código de adquisición de datos del MPU también sé que está funcionando correctamente porque en otro programa realizado pude visualizar los datos de este a través de una pantalla LCD.
El problema viene cuando quiero enviar datos a la PC utilizando rs232, por lo que sospecho que el problema está en que el módulo USB-TTL no está enviando los datos a la PC. La única conexión que he hecho es conectar el TX y RX del módulo USB-TTL al RX y TX del microcontrolador, respectivamente.
Cabe resaltar que en anteriores proyectos no he tenido problemas para enviar datos desde la PC al microcontrolador utilizando este mismo módulo y la misma conexión.
En otros foros parece ser que es un problema al utilizar conjuntamente #use i2c y #use rs232, pero no doy con la solución. Les agradecería su ayuda pls

i2cmain.h:
#include <16F877A.h>
#device ADC=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES HS
#use delay(crystal=20000000)
Programa Principal:
#include <i2cmain.h>
#use standard_io(C)
#use standard_io(D)
#use standard_io(B)
#define Master_to_slave 0xD0 //!Para escribir datos al slave //! Con AD0 = 0;
#define Slave_to_master 0xD1 //!Para leer datos del slave //! Con AD0 = 0;
#use RS232(BAUD=9600,BITS=8,PARITY=N,XMIT=PIN_C6,RCV=PIN_C7, errors)
#use i2C(master, scl=PIN_C3, sda=PIN_C4, fast, force_hw)
//!#define LCD_ENABLE_PIN PIN_D0
//!#define LCD_RS_PIN PIN_D1
//!#define LCD_RW_PIN PIN_D2
//!#define LCD_DATA4 PIN_D4
//!#define LCD_DATA5 PIN_D5
//!#define LCD_DATA6 PIN_D6
//!#define LCD_DATA7 PIN_D7
//!#include <lcd.c>
#define MPU6050_PWR_MGMT_1 0x6B
signed int16 accel_xout;
signed int16 accel_yout;
signed int16 accel_zout;
#define ACCEL_XOUT_H 0x3B
#define ACCEL_XOUT_L 0x3C
#define ACCEL_YOUT_H 0x3D
#define ACCEL_YOUT_L 0x3E
#define ACCEL_ZOUT_H 0x3F
#define ACCEL_ZOUT_L 0x40
int16 MPU6050_Leer_Registro(int8 registro){
int8 msb, lsb;
int16 valor;
i2c_start();
i2c_write(Master_to_slave);
i2c_write(registro);
i2c_start();
i2c_write(Slave_to_master);
msb = i2c_read(0);
i2c_stop();
i2c_start();
i2c_write(Master_to_slave);
i2c_write(registro + 0x01);
i2c_start();
i2c_write(Slave_to_master);
lsb = i2c_read(0);
i2c_stop();
valor = make16(msb,lsb);
return (valor);
}
void Get_Accel_Values(void){
accel_xout = MPU6050_Leer_Registro(ACCEL_XOUT_H);
//!accel_yout = MPU6050_Leer_Registro(ACCEL_YOUT_H);
//!accel_zout = MPU6050_Leer_Registro(ACCEL_ZOUT_H);
output_low(Pin_B7);
delay_ms(210);
}
void MPU6050_Setup(){
delay_ms(100);
i2c_start();
i2c_write(Master_to_slave);
i2c_write(MPU6050_PWR_MGMT_1);
i2c_write(0x00);
i2c_stop();
delay_ms(100);
}
void main()
{
//! lcd_init();
//! lcd_gotoxy(1,1);
MPU6050_Setup();
char string[30];
while(TRUE)
{
//! lcd_putc("\f");
Get_Accel_Values();
//sprintf(string,"%ld",accel_xout); //!ld = long signed
output_high(Pin_B7);
delay_ms(210);
}
}