STM32F103C8T6 Placa de desenvolvemento do sistema mínimo
Información do produto
O módulo de placa de desenvolvemento do sistema mínimo STM32F103C8T6 ARM STM32 é unha placa de desenvolvemento baseada no microcontrolador STM32F103C8T6. Está deseñado para ser programado usando o IDE de Arduino e é compatible con varios clons, variacións e placas de terceiros de Arduino como ESP32 e ESP8266.
A placa, tamén coñecida como Blue Pill Board, funciona cunha frecuencia aproximadamente 4.5 veces maior que un Arduino UNO. Pódese usar para varios proxectos e pódese conectar a periféricos como pantallas TFT.
Os compoñentes necesarios para construír proxectos con esta placa inclúen a placa STM32, o programador FTDI, a pantalla TFT en cor, o botón pulsador, a placa pequena, fíos, o banco de enerxía (opcional para o modo autónomo) e o conversor de USB a serie.
Esquemático
Para conectar a placa STM32F1 á pantalla TFT de cores baseada en ST1.8 7735 e a un botón, siga as conexións de pin a pin descritas nos esquemas proporcionados.
Configurando o IDE de Arduino para STM32
- Abre o IDE de Arduino.
- Vaia a Ferramentas -> Taboleiro -> Xestor de taboleiros.
- No cadro de diálogo cunha barra de busca, busque "STM32F1" e instale o paquete correspondente.
- Agarde a que se complete o procedemento de instalación.
- Despois da instalación, a placa STM32 debería estar dispoñible para a súa selección na lista de placas IDE de Arduino.
Programación de placas STM32 con Arduino IDE
Desde o seu inicio, o IDE de Arduino demostrou o desexo de admitir todo tipo de plataformas, desde clons de Arduino e variacións de diferentes fabricantes ata placas de terceiros como ESP32 e ESp8266. A medida que máis xente se familiariza co IDE, comezan a admitir máis placas que non están baseadas en chips ATMEL e para o tutorial de hoxe veremos unha destas placas. Examinaremos como programar a placa de desenvolvemento STM32F32C103T8 baseada en STM6 co IDE de Arduino.
A tarxeta STM32 que se utilizará para este titorial non é outra que a tarxeta de desenvolvemento STM32F103 baseada en chip STM8F6C32T1, coñecida habitualmente como "Blue Pill" en liña coa cor azul da súa PCB. Blue Pill está alimentado polo poderoso procesador ARM STM32F32C103T8 de 6 bits, con frecuencia de 72 MHz. A placa funciona en niveis lóxicos de 3.3v pero os seus pinos GPIO foron probados para tolerar 5v. Aínda que non vén con WiFi ou Bluetooth como as variantes ESP32 e Arduino, ofrece 20 KB de RAM e 64 KB de memoria flash, o que o fai adecuado para grandes proxectos. Tamén posúe 37 pinos GPIO, 10 dos cales poden usarse para sensores analóxicos xa que teñen ADC activado, xunto con outros que están habilitados para SPI, I2C, CAN, UART e DMA. Para un taboleiro que custa uns 3 dólares, estarás de acordo comigo en que estas son especificacións impresionantes. Na seguinte imaxe móstrase unha versión resumida destas especificacións en comparación coa dun Arduino Uno.
Segundo as especificacións anteriores, a frecuencia coa que opera Blue Pill é unhas 4.5 veces maior que un Arduino UNO, para o tutorial de hoxe, como ex.ample sobre como usar a placa STM32F1, conectarémola a unha pantalla TFT de 1.44″ e programarémola para calcular a constante "Pi". Observaremos o tempo que tardou a placa en obter o valor e comparalo co tempo que tarda un Arduino Uno en realizar a mesma tarefa.
Compoñentes necesarios
Os seguintes compoñentes son necesarios para construír este proxecto;
- Placa STM32
- Programador FTDI
- Cor TFT
- Pulsador
- Breadboard pequena
- Fíos
- Banco de enerxía
- Convertidor de USB a serie
Como é habitual, todos os compoñentes utilizados para este tutorial pódense mercar nas ligazóns adxuntas. Non obstante, o banco de enerxía só é necesario se queres implementar o proxecto nun modo autónomo.
Esquemático
- Como se mencionou anteriormente, conectaremos a placa STM32F1 á pantalla TFT de cores baseada en ST1.8 de 7735″ xunto cun botón.
- O pulsador servirase para indicarlle á tarxeta que inicie o cálculo.
- Conecte os compoñentes como se mostra no esquema seguinte.
Para que as conexións sexan fáciles de replicar, a continuación descríbense as conexións pin a pin entre o STM32 e a pantalla.
STM32 - ST7735
Revisa as conexións unha vez máis para asegurarte de que todo é como debería ser xa que adoita ser un pouco complicado. Feito isto, procedemos a configurar a placa STM32 para ser programada co IDE de Arduino.
Configurando o IDE de Arduino para STM32
- Como ocorre coa maioría das placas non feitas por Arduino, hai que facer un pouco de configuración antes de poder usar a placa co IDE de Arduino.
- Isto implica instalar a placa file xa sexa a través do Arduino Board Manager ou descargando desde Internet e copiando o files no cartafol de hardware.
- A ruta de Board Manager é a menos tediosa e dado que o STM32F1 está entre os taboleiros listados, seguiremos esa ruta. Comeza engadindo a ligazón para a placa STM32 ás listas de preferencias de Arduino.
- Ir a File -> Preferencias e, a continuación, introduza isto URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) no cadro como se indica a continuación e faga clic en Aceptar.
- Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Busca STM32F1 and install the corresponding package.
- O procedemento de instalación levará uns segundos. Despois diso, a placa agora debería estar dispoñible para a súa selección na lista de placas IDE de Arduino.
Código
- O código escribirase do mesmo xeito que escribiriamos calquera outro bosquexo para un proxecto Arduino, coa única diferenza na que se fai referencia aos pinos.
- Para poder desenvolver facilmente o código para este proxecto, utilizaremos dúas bibliotecas que son ambas modificacións das bibliotecas estándar de Arduino para facelos compatibles co STM32.
- Usaremos a versión modificada das bibliotecas Adafruit GFX e Adafruit ST7735.
- Ambas bibliotecas pódense descargar a través das ligazóns adxuntas. Como de costume, farei un pequeno desglose do código.
- Comezamos o código importando as dúas bibliotecas que utilizaremos.
- A continuación, definimos os pinos do STM32 aos que están conectados os pinos CS, RST e DC da LCD.
- A continuación, creamos algunhas definicións de cores para facilitar o uso das cores polos seus nomes no código máis tarde en lugar de polos seus valores hexadecimales.
- A continuación, establecemos o número de iteracións que queremos que pase o taboleiro xunto coa duración da actualización para que se use a barra de progreso.
- Feito isto, creamos un obxecto da biblioteca ST7735 que se utilizará para referenciar a pantalla ao longo de todo o proxecto.
- Tamén indicamos o pin do STM32 ao que está conectado o pulsador e creamos unha variable para manter o seu estado.
- Feito isto, pasamos á función void setup().
- Comezamos configurando o pinMode() do pin ao que está conectado o pulsador, activando unha resistencia de pull-up interna no pin xa que o pulsador conéctase ao chan cando se preme.
- A continuación, inicializamos a comunicación en serie e a pantalla, configurando o fondo da pantalla en negro e chamando á función de impresión () para mostrar a interface.
- A continuación está a función void loop(). A función de bucle baleiro é bastante sinxela e curta, grazas ao uso de bibliotecas/funcións.
- Comezamos lendo o estado do pulsador. Se se preme o botón, eliminamos a mensaxe actual da pantalla mediante removePressKeyText() e debuxamos a barra de progreso cambiante mediante a función drawBar().
- Despois chamamos á función de cálculo de inicio para obter e mostrar o valor de Pi xunto co tempo que tardou en calculalo.
- Se non se preme o botón, o dispositivo permanece no modo inactivo coa pantalla esixindo que se prema unha tecla para interactuar con el.
- Finalmente, insírese un atraso ao final do bucle para dar un pouco de tempo antes de debuxar "bucles".
- A parte restante do código son as funcións chamadas para realizar as tarefas desde debuxar a barra ata calcular o Pi.
- A maioría destas funcións foron tratadas noutros titoriais que implican o uso da pantalla ST7735.
- O código completo para o proxecto está dispoñible a continuación e está adxunto na sección de descargas.
Cargando código no STM32
- A carga de bosquexos ao STM32f1 é un pouco complexa en comparación coas placas estándar compatibles con Arduino. Para cargar código no taboleiro, necesitamos un conversor de USB a serie baseado en FTDI.
- Conecte o conversor de USB a serie ao STM32 como se mostra nos esquemas seguintes.
Aquí tes un mapa de pin a pin da conexión
FTDI – STM32
- Feito isto, cambiamos a posición do puente de estado da placa á posición un (como se mostra no gif de abaixo), para poñer a placa en modo de programación.
- Preme o botón de reinicio no taboleiro unha vez despois e xa estamos preparados para cargar o código.
- No ordenador, asegúrate de seleccionar "Placa STM32F103C xenérica" e selecciona o método de carga en serie, despois do cal podes premer o botón de carga.
- Unha vez completada a carga, cambia o puente de estado á posición "O" Isto poñerá o taboleiro en modo "executar" e agora debería comezar a executarse en función do código cargado.
- Neste punto, podes desconectar o FTDI e alimentar a placa a través do seu USB. No caso de que o código non se execute despois da alimentación, asegúrese de restaurar o puente correctamente e recicle a enerxía na placa.
Demostración
- Co código completo, siga o proceso de carga descrito anteriormente para cargalo na súa configuración.
- Deberías ver a pantalla aparecer como se mostra na imaxe de abaixo.
- Prema o botón para iniciar o cálculo. Deberías ver a barra de progreso deslizarse gradualmente ata o final.
- Ao final do proceso, móstrase o valor de Pi xunto co tempo que levou o cálculo.
- O mesmo código está implementado nun Arduino Uno. O resultado móstrase na imaxe de abaixo.
- Comparando estes dous valores, vemos que "Blue Pill" é máis de 7 veces máis rápido que o Arduino Uno.
- Isto fai que sexa ideal para proxectos que impliquen un procesamento pesado e limitacións de tempo.
- O pequeno tamaño da pílula azul tamén serve de advantagAquí, xa que é só un pouco máis grande que o Arduino Nano e pódese usar en lugares onde o Nano non será o suficientemente rápido.
Documentos/Recursos
![]() |
STM32 STM32F103C8T6 Placa de desenvolvemento do sistema mínimo [pdfManual do usuario STM32F103C8T6 Placa de desenvolvemento do sistema mínimo, STM32F103C8T6, Placa de desenvolvemento do sistema mínimo, Placa de desenvolvemento do sistema, Placa de desenvolvemento, Placa |