This is a playground project created around an STM32F103C6T8 "study board" sourced from ebay.
- RTC for time keeping, but the board has no battery back up :-(
- USB
- UART
- I2C using DMA. presently bit-banged.
Name and URL on backside LC Technology
link in English ARM Cortex-M3 STM32F103C8T6 Dev board Core Board
More info at LC Technology STM32F051C8T6 from STM32-base
The base project was created using ST's CubeMX with LL divers for everything except USB.
Compiler/IDE is IAR EWARM 7.8
I2C-like support for a TM1637 is implemented using bit-banged I/O. CLK = PB066 DIO = PB07 The original source is from https://github.com/rogerdahl/stm32-tm1637 The code has been modified in several ways:
- I/O is mapped to I2C1 pins on STM32F103C8T6.
- use uSecDelay() for uSec delays. This function uses the SysTick counter for accurate timing.
- IC2 CLK is push-pull, I2C data is push-pull for all cycles except during ACK from TM1637.
- ACK is checked as part of byte write function.
- return ACK status (presently ignored.)
- made brightness a variable, fixed an issue with the initial setting.
04/22/2022 MAR
- systick is running at 1mS. Main loop sleeps until SysTick changes.
- UART with basic echo: implemented with IRQs.
- TM1637 is working, toggling colon every 500mS and updating the displayed count every second.
03/15/2023 MAR
- update links to PCB info.
- fix project to use local copy of TM1637 driver.