A utilização de computadores embutidos, ou sistemas embarcados, nos mais diversos equipamentos, aparelhos e dispositivos ocorre a várias décadas. Para essas aplicações surgiu, na década de 1970, o microcontrolador, e desde então diversos fabricantes têm lançado diferentes famílias e núcleos. O avanço das tecnologias de redes sem fio permitiu conectar os sistemas embarcados à internet, surgindo a internet das coisas (IoT). Portanto, estima-se que 95% dos computadores produzidos atualmente sejam do tipo embarcado. O desenvolvimento de um sistema embarcado com microcontrolador exige vários conhecimentos nas áreas de software e hardware, e a utilização de várias ferramentas diferentes. Visando facilitar esse processo, surgiram plataformas "open source" para desenvolvimento rápido de sistemas embarcados. O objetivo deste livro é abordar a programação em linguagem C de microcontroladores, focada na utilização dos recursos internos e no controle de diferentes dispositivos de entrada e saída conectados ao microcontrolador. É uma obra voltada para aqueles que desejam aprimorar seus conhecimentos no desenvolvimento de firmwares de "baixo nível" e na utilização de diferentes dispositivos de entrada e saída conectados ao microcontrolador. Portanto, este livro pode ser usado por quem deseja desenvolver e programar seu próprio sistema embarcado, ou deseja programar uma plataforma "open source" para controlar dispositivos de entrada e saída não suportados em suas bibliotecas.