How can I send a jpeg image to a microcontroller via USART?
the UART protocol it not really intended for images, each data packet is 11 bits, and can only contain 8 bits of data. This will take a really long time, even for the smallest of images.
I am sure there are libraries out these, or you could do it your own.
On the side with the jpg file, you should be able to iterate through the memory map of the image, transmitting 8 bits at a time. On the receiving end, you will then need to take and rebuild the raw file.
You have not specified an architecture of any kind, so I can not provide further information - but you should really look into compression before you transmit it.
You can use UART Camera's that has inbuilt JPEG compression to capture JPEG images and send images to Microcontroller using UART. Here is an example of JPEG UART Camera : http://www.watterott.com/en/JPEG-Color-Camera-UART-Interface
You can use mavlink image transmission protocol. You can find more information in link below http://qgroundcontrol.org/mavlink/image_transmission_protocol
You can also implement any ftp protocol and send packets via usart