RE:como paso un archivo .bmp (etc) a .ico
Un byte = 8 bits, por lo que un byte puede tener un valor entre 0 y 255, en binario esto se traduce como: 00000000 a 11111111, si sabes el valor de un byte solo se convierte a binario y listo ya sabes cual es el valor de cada bit. Por ejemplo al recibir el byte con valor de 125 en binario resulta. 01111101, entonces ya se que valor tienen los bits de este byte, 1 el primero, 0 el segundo, 1 el tercero, etc. La comunicación serial es a base de grupos de bits de información (de 5 a 8), lo cual es un estándar, lo que si es cierto es que como la comunicación es serial la información siempre se transmite bit por bit, pero estos tienen un patrón particular para que el sistema que los reciba pueda identificar cuando empiezan los datos y si estos son congruentes, para ello utiliza bits adicionales como los bits de parada, así como los bits de paridad, otro dato importante es la taza de velocidad de transmisión. Todos estos son parámetros importantes para que dos puntos (Transmisión y recepción) se puedan entender. Lo cual indica que tu microcontrolador debe de estar programado para entender la configuración serial que le estas transmitiendo, es decir que lea bit por bit a la velocidad a la cual se lo estén transmitiendo y que pueda identificar cual es el bit de parada o bits de parada para así saber cuales son los bits de información y si también debe o no leer el bit de paridad. Por ejemplo le puedes estar transmitiendo a 9600 bits por segundo con datos de 8 bits, sin bit de paridad y un bit de parada (formato: 9600,8,0,1). No se si esto te de una idea sobre este tipo de comunicación serial, si tienes mas dudas escríbeme a mi e-mail.