En primer lugar, el modelo STM32F103 no tiene un periférico Ethernet, por lo que tiene dos opciones aquí: la menos óptima sería encontrar algún tipo de IC de puente que admita algunas de las otras interfaces de hardware compatibles según este modelo (USART, I2C, SPI, etc.) El más óptimo sería cambiar al modelo de línea de conectividad STM32F107, que tiene un periférico Ethernet. Todo lo que necesita es un PHY IC, como por ejemplo el TI DP83848, el magnetismo y un conector RJ-45 (u obtenga un Magjack que haga ambos en un solo componente).
En cuanto a la pila TCP / IP en sí, dos buenas opciones serían lwIP y uIP . ST tiene algunos código de ejemplo para lwIP para que pueda levantarse y corriendo rápido, especialmente si tienes un tablero de desarrollo. ST también proporciona código de muestra para otras familias habilitadas para Ethernet, como el STM32F2x7 y STM32F4x7, en caso de que elija estos modelos (más caros).