Alternativamente a forma apresentada na parte I desta serie, e possivel facilitar o processo de programacao dos perifericos da placa STM32F4Discovery usando a Standard Peripheral Library do Cortex-M4. Cada periferico tem sua propria biblioteca de software correspondente.No CoIDE, na aba Repositorio, basta incluir o periferico desejado. Para o primeiro projeto apresentado, significa selecionar as bibliotecas RCC (referente ao controle do reset e clock para a STM32F4) e GPIO (referente as portas genericas de entrada e saida da placa). Em outras palavras,Isto adicionara a estrutura do projeto o codigo correspondente a estas bibliotecas, como pode ser comprovado pela adicao dos arquivos de cabecalho correspondentes na pasta cmsis_lib/include:Isto proporcionara a possibilidade de se usar rotulos que se referem aos valores que necessitam ser atribuidos aos campos que configuram o clock e a porta (como GPIO_Mode_OUT ou RCC_AHB1Periph_GPIOD), conforme mostrado no codigo abaixo:Ao compila-lo, no entanto, o tamanho do programa aumentara, em relacao a versao apresentada na parte I, como pode ser visto a seguir:Tamanho com uso da SPLTamanho sem SPL (versao da Parte I)Assim, o uso de bibliotecas implicam no aumento dos custos com espaco em memoria.Podemos ir alem no uso da SPL, configurando os campos atraves da declaracao/ uso de uma estrutura, como feito na linha 5 e nas linhas 15 a 20 do codigo abaixo:Observe tambem a chamada a funcoes para habilitar o clock (linha 11) e para setar (linha 27) ou resetar (linha 29) o pino 12 da placa, ligando e desligando o LED correspondente, respectivamente.Para se ter uma ideia do aumento do espaco proporcionado por estas pequenas modificacoes, observe o tamanho resultante, apos compilar o projeto:Por fim, podemos usar uma funcao alternativa para ligar/ desligar o respectivo pino, que e a funcao ToggleBits, conforme linha 28 do codigo abaixo:Ao compilarmos este codigo, o programa resultante tera o seguinte tamanho:E notavel a reducao proporcionada por esta abordagem. Por isso, vale a pena investir tempo estudando o que as bibliotecas nos proporcionam, pois elas podem nos oferecer formas de otimizar o codigo. E no CoIDE tais informacoes sao proporcionadas pela janela de Help, que, ao selecionar uma biblioteca do repositorio, serao exibidos os recursos que esta proporcionam na janela do Help a direita:No proximo post da serie ensinaremos como definir e usar um Timer para implementar uma funcao de delay, em substituicao aos lacos for usados para este fim. Este artigo do IEEE Spectrum trata de Beamforming, preconizado como o conceito por tras da entrega de dados de forma mais eficiente para os usuarios moveis, sendo uma das tecnologias de base para as redes de proxima geracao 5G.O artigo tras um video que sumariza esta tecnologia, o qual compartilhamos aqui: Para os que quiserem ler, segue abaixo o link para o texto:5G Bytes: Beamforming Explained: Future 5G networks will transmit data through targeted beams and advanced signal processing that could speed up data rates and boost bandwidth Nos programas desenvolvidos nos ultimos posts, o intervalo de tempo em que o LED fica aceso ou apagado e implementado atraves de estruturas de repeticao for, cuja quantidade de iteracoes define o tempo, de certa