ะ
เบกเบทเปเบเบตเปเบเปเบญเบเบเบฐเบชเบฐเปเบเบเบงเบดเบเบตเบเบฒเบเปเบเป datasheets เปเบเบทเปเบญเปเบเปเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบฒเบ, เปเบเปเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเปเบฒเบเบงเบเบซเบผเบฒเบ, เบงเบฝเบเบเบฒเบเบเปเบฝเบงเบเบฑเบ STM32 (Blue Pill) เปเบฅเบฐ STM8 controllers. เปเบเบเบเบฒเบ demo เบเบฑเบเบซเบกเบปเบเปเบกเปเบเบญเบธเบเบดเบเบเบปเบเปเบเบทเปเบญ LEDs favorite เบเบญเบเบเปเบฒเบเบฐเปเบเบปเปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฎเบฑเบเปเบซเปเบกเบตเปเบชเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบเบฐเบซเบเบฒเบเปเบซเบเป, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเปเบเปเบเปเบฒเปเบเปเบเบธเบเบเบฐเปเบเบเบเบญเบเบญเบธเบเบฐเบเบญเบเปเบชเบตเบกเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบ.
เบเปเปเบเบงเบฒเบกเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบฐเบซเบเบฒเบเปเบซเบเป, เบเบฑเปเบเบเบฑเปเบเปเบเบทเปเบญเบเบงเบฒเบกเบชเบฐเบเบงเบเบเปเบญเบเบเปเบฒเบฅเบฑเบเบชเปเบฒเบเปเบเบทเปเบญเบซเบฒ:
เบเบฒเบเบเบฐเบเบดเปเบชเบ: เบเปเบญเบเบเปเปเปเบกเปเบเบงเบดเบชเบฐเบงเบฐเบเบญเบ, เบเปเบญเบเบเปเปเปเบเปเบเปเบฒเบเปเบฒเบงเปเบฒเบกเบตเบเบงเบฒเบกเบฎเบนเปเปเบฅเบดเบเปเบเบดเปเบเปเบเปเบญเปเบฅเบฑเบเปเบเบฃเบเบดเบ, เบเบปเบเบเบงเบฒเบกเปเบกเปเบเบกเบตเบเบธเบเบเบฐเบชเบปเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบชเบกเบฑเบเปเบฅเปเบเปเบเบฑเปเบเบเปเบญเบ. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบดเบเบฒเบฅเบฐเบเบฒเบเบปเบเปเบญเบเบชเบญเบเบเบตเบเปเบญเบเปเบเบฑเบเบเบนเปเบเบปเบกเปเบเบปเปเบฒเบซเบกเบฒเบ. เบเปเบฒเปเบเบเบนเปเบซเบเบถเปเบเบเบญเบเบเปเบญเบเบงเปเบฒเปเบเปเบเบเปเปเบกเบนเบเปเบเบเบดเบเบเบตเปเบเปเปเบเบธเปเบเปเบเบตเบเบเปเปเบซเบเปเบฒเบขเปเบฒเบเบเบตเปเบเบฐเบญเปเบฒเบ, เบเปเบญเบเบเบฐเบเปเปเปเบเปเปเบงเบฅเบฒเบซเบผเบฒเบเปเบเบเบฒเบเบเบญเบเบซเบฒเบฅเบฐเบซเบฑเบเบเบฒเบเบขเปเบฒเบเปเบเบญเบดเบเปเบเบตเปเบเบฑเบเปเบฅเบฐเบเบฐเบเบดเบเปเบกเปเบเปเบญเบเบเบตเปเบกเบตเบกเบตเบเบเบฑเบเปเบฅเบฐ tape adhesive.
เบเบธเบโเบชเบธเบกโเบเบญเบโเบเบปเบโเบเบงเบฒเบกโเบเบตเปโเปเบกเปเบโเบขเบนเปโเปเบโเปเบเปเบโเบเปเปโเบกเบนเบโ, เบเปเปโเปเบกเปเบโเปเบเบโเบเบฒเบโ, เบชเบฐโเบเบฑเปเบโเบฅเบฐโเบซเบฑเบโเบญเบฒเบโเบเบฐโเบเปเปโเปเบกเปเบโเบซเบผเบฒเบโเปเบฅเบฐโเบกเบฑเบโเบเบฐโเปเบเบโ. เปเบเบเบเบฒเบเบเปเบงเบเบเบปเบเปเบญเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเบซเบผเบฒเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบปเบเบฎเบนเปเบเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบฑเบเบเบดเบเปเบซเบกเป.
เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบซเบงเบฑเบโเบงเปเบฒโเบเบปเบโเบเบงเบฒเบกโเบเบญเบโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบฐโเบเปเบงเบโเปเบซเปโเบเบนเปโเปเบโเบเบนเปโเบซเบเบถเปเบโเบขเบนเปโเปเบโเบเบฑเปเบโเบเบญเบโเบเบตเปโเบเปเบฒเบโเบเบทโเบเบฑเบโเบเบญเบ immersion เปเบ hobby เปเบเป.
STM32
16 LEDs เบเบฑเบ DM634 เปเบฅเบฐ SPI
เปเบเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบตเปเปเบเป Blue Pill (STM32F103C8T6) เปเบฅเบฐเปเบเปเบงเบต LED DM634. เบเบฒเบเบเปเบฒเปเบเปเปเบเปเบเบเปเปเบกเบนเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบญเบญเบเปเบเปเบงเบต, เบเบญเบ STM IO เปเบฅเบฐเบเบฑเปเบเบเปเบฒ SPI.
DM634
เบเบดเบเปเบเปเบซเบงเบฑเบเบเบตเปเบกเบต 16 16-bit PWM เบเบปเบเบเบฐเบฅเบดเบ, เบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเปเบญเบเปเบชเป. เบฎเบนเบเปเบเบ 12-bit เบเปเปเบฒเบชเบธเบเปเบกเปเบเปเบเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบเบเบฒเบเปเบเบเบเบฒเบเบเบฒเบเปเบเบเบฐเปเบเบ
เปเบเบทเปเบญเบเบเบฒเบเบเบนเปเบเบฐเบฅเบดเบเปเบกเปเบเบเบฒเบงเปเบเปเบซเบงเบฑเบ,
เปเบซเบผเปเบ DC Sink (Open Drain)
เบเบปเบกเบฅเบปเบ / เปเบเบตเบ-เบฅเบฐเบเบฒเบเบเปเบณเบญเบญเบ - เบฅเบฐเบเบฒเบ; เปเบซเบผเปเบเบเบฐเปเบชเบเบฐเปเบชเปเบเบเปเบฒ; เบเบปเบเบเบฐเบฅเบดเบเปเบกเปเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบซเบเปเบฒเบเบดเบเปเบเบชเบฐเบเบฒเบเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง - LEDs เปเบกเปเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบเปเบงเบตเปเบเบ cathodes. เปเบเบเปเบฒ, เปเบเปเบเบญเบ, เบเปเปเปเบกเปเบ "เบเปเปเบฅเบฐเบเบฒเบเบเปเปเบฒเปเบเบตเบ" (เปเบเบตเบเบฅเบฐเบเบฒเบ), เปเบเปเปเบ datasheets เบเบฒเบเบเปเบฒเบเบปเบเบเบตเปเบชเปเบฒเบฅเบฑเบ pins เปเบเบฎเบนเบเปเบเบเบเบฒเบเบฅเบฐเบเบฒเบเปเบกเปเบเบเบปเบเปเบซเบฑเบเปเบฅเบทเปเบญเบเป.
เบเบปเบงเบเปเบฒเบเบเบฒเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบงเปเบฒเบ REXT เปเบฅเบฐ GND เปเบเบทเปเบญเบเปเบฒเบเบปเบเบกเบนเบเบเปเบฒเบเบฐเบเบธเบเบฑเบเบเบปเบเบเบฐเบฅเบดเบ
เบเบปเบงเบเปเบฒเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบทเบเบเบดเบเบเบฑเปเบเบขเบนเปเบฅเบฐเบซเบงเปเบฒเบ pin REXT เปเบฅเบฐเบเบดเบ, เปเบเบดเปเบเบเบงเบเบเบธเบกเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบเบเบฒเบเปเบเบเบญเบเบเบปเบเปเบเปเบฎเบฑเบ, เปเบเบดเปเบเปเบชเบฑเปเบเบชเบฐเปเบเบเปเบเบซเบเปเบฒ 9 เบเบญเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบ. เปเบ DM634, เบเบฒเบเบเปเปเบเปเบฒเบเบเบตเปเบเบฑเบเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเปเบเบเบเบญเบเปเบง, เบเปเบฒเบเบปเบเบเบงเบฒเบกเบชเบฐเบซเบงเปเบฒเบเปเบเบเบฅเบงเบก (เบเบงเบฒเบกเบชเบฐเบซเบงเปเบฒเบเบเบปเปเบงเปเบฅเบ); เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเปเปเปเบเบปเปเบฒเปเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเบฐเปเบชเปเบเบปเบงเบเปเบฒเบเบเบฒเบ 2.2 - 3 kOhm เบขเบนเปเบเบตเปเบเบตเป.
เปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบงเบดเบเบตเบเบฒเบเบเบงเบเบเบธเบกเบเบดเบ, เปเบซเปเปเบเบดเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฒเบเปเบเปเบเบญเบเบญเบธเบเบฐเบเบญเบ:
เปเบกเปเบเปเบฅเปเบง, เบเบตเปเปเบกเปเบเบเบฒเบชเบฒเบญเบฑเบเบเบดเบเบเบตเบเปเบเบฅเบฑเบเบชเบฐเบซเบกเบตเบเบฒเบเบเบฑเบเบซเบกเบปเบ. เบเบฒเบเปเบเบเบตเปเปเบกเปเบเบกเบตเบเบฑเบเบซเบฒ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบกเบฑเบเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบ, เปเบเปเบกเบตเบงเบดเบเบตเบญเบทเปเบ - เปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ TLC5940 เบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบ:
... เบเบฝเบเปเบเปเบชเบฒเบก pins เบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเปเบญเบเบเปเปเบกเบนเบเปเบเบปเปเบฒเปเบเปเบเบญเบธเบเบฐเบเบญเบ. เบเบญเบเบเบตเปเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบชเบฑเบเบเบฒเบ SCLK เบเปเบฝเบเบเปเปเบกเบนเบเบเบฒเบ PIN SIN เปเบเบซเบฒเบเบฐเบเบฝเบเบเบฒเบเปเบ. เบซเบผเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเปเบปเบเบเบทเบเปเบซเบฅเบเปเบฅเปเบง, เบชเบฑเบเบเบฒเบ XLAT เบชเบนเบเบชเบฑเปเบเบเบฐเบเบฑเบเบเปเปเบกเบนเบเบเบตเปเบเบทเบเปเบญเบเปเบเบปเปเบฒเบขเบนเปเปเบเบเบฐเบเบฝเบเบเบฒเบเปเบ. เบเบฐเบเบฝเบเบเบฒเบเปเบเปเบกเปเบเบเบฐเบเบนเบเบตเปเบเบทเบเบเบฐเบเบธเปเบเปเบเบเบฅเบฐเบเบฑเบเบชเบฑเบเบเบฒเบ XLAT. เบเปเปโเบกเบนเบโเบเบฑเบโเบซเบกเบปเบโเปเบกเปเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเปเบฒเบโเปเบญเบโเบเบตเปโเบชเปเบฒโเบเบฑเบโเบเบตเปโเบชเบธเบโเบเปเบญเบโเบเปเบฒโเบญเบดเบโ.
Latch - เบชเบฐโเบเบฑเบ / เบชเบฐโเบเบดเบ / lockโ.
เบเบญเบโเปเบเบตเปเบกโเบเบถเปเบ - เปเบเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเปเบฒเบกเบฐเบเบญเบ
MSB เบเปเบญเบ โ เบเบตเปโเบชเปเบฒโเบเบฑเบโเบเบตเปโเบชเบธเบ (เบเปเบฒเบโเบชเบธเบโ) เบเบดเบโเปเบโเบซเบเปเบฒโ.
เบเปเปเบกเบนเบเปเบกเบ - เบชเบปเปเบโเบเปเปโเบกเบนเบโเบเบฒเบกโเบฅเปเบฒโเบเบฑเบ (เบเบดเบโเปเบเบโเบเปเบญเบโ)โ.
เบเปเบฒ เบฅเบญเบ เบกเบฑเบเบเบฐเบเบปเบเปเบซเบฑเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบเบชเปเบฒเบฅเบฑเบเบเบดเบเปเบฅเบฐเบเบทเบเปเบเบเปเบงเบเบงเบดเบเบตเบเปเบฒเบเป, เบเบฑเปเบเบเบฑเปเบเปเบเบทเปเบญเบเบงเบฒเบกเปเบเบปเปเบฒเปเบเบเปเบญเบเบเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบปเบงเปเบญเบ.
เปเบเบโเบเบฒเบโเบเบฒเบโเบชเบถเบโเบชเบฒโเบเบฐโเบซเบเบฒเบโเบเปเบญเบโเปเบเปเบงเบต LED เปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเบเปเบฝเบเปเบเบ. "เบเปเบฝเบ" (เบเปเบฝเบเปเบเบ) เปเบเบเบทเป - เบเบฒเบเปเบเบทเปเบญเบเปเบซเบง bitwise เบเบญเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบญเบธเบเบฐเบเบญเบ: เปเบเปเบฅเบฐเบเบดเบเปเบซเบกเป shoved เบเบฒเบเปเบ pushes เปเบชเปเบเบฑเบเบซเบกเบปเบเปเบเบเปเบฒเบเบซเบเปเบฒเบเบญเบเบกเบฑเบ. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเปเปเบกเบตเปเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบเบฒเบเบเบฐเบเบดเบ chaotic เบเบญเบ LEDs เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเปเบฝเบ, เบเบฐเบเบงเบเบเบฒเบเปเบเบตเบเบเบถเปเบเปเบเบเบฐเบเบฝเบ buffer เปเบเบเบญเบญเบเบเบฒเบเบเบฑเบเบเบถเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบ damper (เบฅเบญเบ) เปเบกเปเบเบเบฐเปเบเบเบเบญเบเบซเปเบญเบเบฅเปเบเปเบฒเบเบตเป bits เบเบทเบเบเบฑเบเบฅเบฝเบเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบ. เปเบกเบทเปเบญเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบฝเบกเบเปเบญเบก, shutter เปเบเบตเบเปเบฅเบฐ bits เปเบเปเบฎเบฑเบเบงเบฝเบ, เบเบปเบเปเบเบเบเบธเบเบเบตเปเบเปเบฒเบเบกเบฒ. เบเปเบฒ เบฅเบญเบ เปเบเปเบญเบเบฐเบชเบฒเบเบชเปเบฒเบฅเบฑเบ microcircuits เปเบเบทเบญเบเบชเบฐเปเบซเบกเบตเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒ damper เบเบฑเปเบเบเปเบฒเบง, เบเปเปเบงเปเบฒเบกเบฑเบเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเปเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเปเบญเบเบเปเปเบกเบนเบเปเบเบเบฑเบ DM634 เปเบกเปเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเปเบเบเบตเป: เบเปเบฒเบเบปเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ DAI เบเบฑเบเบเปเบฒเบเบญเบเบเบดเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบญเบ LED เปเบ, เบเบถเบ DCK เบเบถเปเบเปเบฅเบฐเบฅเบปเบ; เบเปเบฒเบเบปเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ DAI เบเบฑเบเบเปเบฒเบเบญเบเบเบดเบเบเปเปเปเบ, เบเบถเบ DCK; เปเบฅเบฐเบญเบทเปเบเปเบเบปเบเบเปเบงเบฒ bits เบเบฑเบเบซเบกเบปเบเปเบเปเบเบทเบเบเปเบฒเบเบเบญเบ (เปเบกเบเปเบเบปเปเบฒ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบถเบ LAT. เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเปเบงเบเบเบปเบเปเบญเบ (bit-bang), เปเบเปเบกเบฑเบเบเปเปเบเบตเบเบงเปเบฒเบเบตเปเบเบฐเปเบเปเบเบฒเบเปเบเปเบเบญเบ SPI เบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเปเบเบเบชเบฐเปเบเบฒเบฐเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบฑเบเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบตเบขเบนเปเปเบ STM32 เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบชเบญเบเบชเปเบฒเปเบเบปเบฒ.
เปเบกเบฑเบเบชเบตเบเปเบฒ STM32F103
เบเบฒเบเปเบเบฐเบเปเบฒ: เบเบปเบงเบเบงเบเบเบธเบก STM32 เปเบกเปเบเบกเบตเบเบงเบฒเบกเบเบฑเบเบเปเบญเบเบซเบผเบฒเบเบเปเบงเบฒ Atmega328 เบซเบผเบฒเบเบเบงเปเบฒเบเบตเปเบเบงเบเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบเบฒเบขเปเบฒเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบญเบเบเบฒเบเบเบฐเบซเบเบฑเบเบเบฐเบฅเบฑเบเบเบฒเบ, เปเบเบทเบญเบเบเบธเบเบญเบธเบเบฐเบเบญเบเบเบทเบเบเบดเบเปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ, เปเบฅเบฐเบเบงเบฒเบกเบเบตเปเบเบญเบเปเบกเบเปเบกเปเบ 8 MHz เบเบฒเบเปเบซเบผเปเบเบเบฒเบเปเบ. เปเบเบเบเบต, เบเบฑเบเบเบฝเบเปเบเบฅเปเบเบฅเบก STM เบเบฝเบเบฅเบฐเบซเบฑเบเบเบตเปเบเปเบฒเปเบญเบปเบฒเบเบดเบเปเบเบดเบ "เบเบฒเบเบเบดเบเปเบฅเป" 72 MHz, เปเบฅเบฐเบเบนเปเบเบฝเบเบเบญเบ IDE เบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเบญเบเบฎเบนเปเบฅเบงเบกเบขเบนเปเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบกเบ (เปเบเป.
เปเบญเบเบฐเบชเบฒเบ: Blue Pill เบกเบตเบเบดเบ STM32F103C8T6 เบเบตเปเบเบดเบเบปเบก, เบกเบตเบชเบญเบเปเบญเบเบฐเบชเบฒเบเบเบตเปเปเบเบฑเบเบเบฐเปเบซเบเบเบชเปเบฒเบฅเบฑเบเบกเบฑเบ:
Data Sheet เบชเปเบฒเบฅเบฑเบ microcontrollers STM32F103x8 เปเบฅเบฐ STM32F103xB;เบเบนเปเบกเบทเบเบฒเบเบญเปเบฒเบเบญเบตเบ เบชเปเบฒเบฅเบฑเบเปเบชเบฑเปเบ STM32F103 เบเบฑเบเบซเบกเบปเบเปเบฅเบฐเบญเบทเปเบเป.
เปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบเบเบงเบเปเบฎเบปเบฒเบญเบฒเบเบเบฐเบชเบปเบเปเบ:
- Pinouts - chip pinouts - เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเปเบฎเบฑเบเบเบฐเบเบฒเบเบเปเบงเบเบเบปเบเปเบญเบ;
- เปเบเบเบเบตเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ - เปเบเบเบเบตเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบดเบเบชเบฐเปเบเบฒเบฐ. เบเบนเปเบกเบทเบญเปเบฒเบเบญเบตเบเบกเบตเปเบเบเบเบตเปเบชเปเบฒเบฅเบฑเบเปเบชเบฑเปเบเบเบฑเบเบซเบกเบปเบ, เปเบฅเบฐเบกเบฑเบเบเปเบฒเบงเปเบเบดเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเปเบกเบต.
- เบเบฒเบเบฐเบฅเบฒเบเบเปเบฒเบเบดเบเบฒเบก PIN - เบฅเบฒเบเบเบทเปเบซเบเปเบฒเบเบตเปเบเบปเปเบเบเปเปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบเบญเบ pins; เบชเปเบฒเบฅเบฑเบ "เบขเบฒเปเบกเบฑเบเบชเบตเบเปเบฒ" เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบฎเบนเบเบเบฒเบเบเบตเปเบชเบฐเบเบงเบเบเบงเปเบฒเปเบเบญเบดเบเปเบเบตเปเบเบฑเบเบเปเบงเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบ pins เปเบฅเบฐเบซเบเปเบฒเบเบตเปเบเบญเบเบกเบฑเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบต google Blue Pill pinout เปเบฅเบฐเบฎเบฑเบเบชเบฒเบฎเบนเบเบเบตเปเบขเบนเปเปเบเบกเบท:
NB: เบกเบตเบเปเปเบเบดเบเบเบฒเบเปเบเบฎเบนเบเบเบฒเบเบเบฒเบเบญเบดเบเปเบเบตเปเบเบฑเบ, เปเบเบดเปเบเปเบเปเบเบทเบเบเบฑเบเบเบถเบเปเบงเปเปเบเบเปเบฒเปเบซเบฑเบ, เบเบญเบเปเบเบชเปเบฒเบฅเบฑเบเบชเบดเปเบเบเบฑเปเบ. เบฎเบนเบเบเบฒเบเปเบเปเบเบทเบเบเปเบฝเบเปเบเบ, เปเบเปเบเบตเปเปเบกเปเบเบเบปเบเบฎเบฝเบ - เบกเบฑเบเบเบตเบเบงเปเบฒเบเบตเปเบเบฐเบเบงเบเปเบเบดเปเบเบเปเปเบกเบนเบเบเปเปเปเบกเปเบเบเบฒเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบ.
เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเปเบเปเบเบเปเปเบกเบนเบ, เปเบเบตเบเบเบนเปเบกเบทเบเบฒเบเบญเปเบฒเบเบญเบดเบ, เปเบฅเบฐเบเบฒเบเบเบตเปเปเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฝเบเปเบเปเบกเบฑเบ.
เบเบฑเปเบเบเบญเบ: เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฒเบเบเบฑเบเบงเบฑเบเบชเบฐเบเบธเบเปเบญเบ / เบเบปเบเบเบฐเบฅเบดเบเบกเบฒเบเบเบฐเบเบฒเบ, เบเบฑเปเบเบเปเบฒ SPI, เปเบเบตเบเบญเบธเบเบฐเบเบญเบเบเปเปเปเบเบทเปเบญเบเบเบตเปเบเปเบฒเปเบเบฑเบ.
Input Output
เปเบ Atmega328, I/O เบเบทเบเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ, เบเบฑเปเบเปเบกเปเบเปเบซเบเบเบปเบเบเบตเปเบเบงเบฒเบกเบญเบธเบเบปเบกเบชเบปเบกเบเบนเบเบเบญเบเบเบฒเบเปเบฅเบทเบญเบ STM32 เบชเบฒเบกเบฒเบเบชเบฑเบเบชเบปเบ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเบปเบเบชเบฐเบซเบผเบธเบ, เปเบเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเบชเบดเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบกเบตเบชเบตเปเบเบฒเบเปเบฅเบทเบญเบ:
open drain, push-pull, เบเบฒเบเปเบฅเบทเบญเบ push-pull, เบเบฒเบเปเบฅเบทเบญเบ open drain
"เบเบถเบ-เบเบนเป" (เบเบนเป-เบเบถเบ) เปเบกเปเบเบเบปเบเบเบฐเบฅเบดเบเบเบปเบเบเบฐเบเบดเบเบฒเบ Arduino, pin เบชเบฒเบกเบฒเบเปเบญเบปเบฒเบเปเบฒเปเบเปเบเบฑเบ HIGH เบซเบผเบท LOW. เปเบเปเบกเบต "เบฅเบฐเบเบฒเบเบเปเปเบฒเปเบเบตเบ" เบกเบต
Output configuration / เปเบกเบทเปเบญเบเบญเบเบเบทเบเบกเบญเบเปเบฒเบเปเบซเปเบญเบญเบ: / output buffer enabled: / โ open drain mode: โ0โ in the output register enables N-MOS, โ1โ in the output register leave the port in Hi-Z mode ( P-MOS เบเปเปเปเบเปเปเบเบตเบเปเบเปเบเบฒเบ ) / โ เปเบซเบกเบ push-pull: โ0โ เปเบเบเบฐเบเบฝเบเบเบปเบเบเบฐเบฅเบดเบเปเบเบตเบเปเบเป N-MOS, โ1โ เปเบเบเบฑเบเบเบถเบเบเบปเบเบญเบญเบเบกเบฒ activates P-MOS.
เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฑเบเปเบปเบเบฅเบฐเบซเบงเปเบฒเบเบเปเปเบฅเบฐเบเบฒเบเบเปเบณเปเบเบตเบ (เปเบเบตเบเบฅเบฐเบเบฒเบ) เบเบฒเบ "เบเบถเบโ" (เบเบนเป-เบเบถเบ) เปเบกเปเบเบงเปเบฒเปเบ pin เบเปเบฒเบญเบดเบเบเปเปเบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเบชเบฐเบเบฒเบเบฐ HIGH เปเบเป: เปเบกเบทเปเบญเบเบฝเบเบซเบเบถเปเบเปเบเบซเบฒเบเบฐเบเบฝเบเบเบปเบเบเบฐเบฅเบดเบ, เบกเบฑเบเบเบฐเปเบเบปเปเบฒเปเบเปเบเปเบซเบกเบเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบเบชเบนเบ (impedance เบชเบนเบ, Hi-Z). เปเบกเบทเปเบญเบเบฝเบเปเบฅเบเบชเบนเบ, pin เบเบฐเบเบดเบเบฑเบเบเบปเบงเบเบฝเบงเบเบฑเบเปเบเบเบฑเบเบชเบญเบเปเบซเบกเบ, เบเบฑเบเบเบฒเบเบเปเบฒเบเปเบซเบเบเบปเบ เปเบฅเบฐเบเบฒเบเปเบเบเปเบฒ.
เปเบโเบฎเบนเบโเปเบเบโเบเบปเบโเบเบฐโเบฅเบดเบโเบเบปเบโเบเบฐโเบเบดโ, pin เบเบฝเบโเปเบเปโเบญเบญเบโเบญเบฒโเบเบฒเบโเปเบเบทเปเบญโเปเบโเบเบญเบโเบเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบโเบเบปเบโเบเบฐโเบฅเบดเบโเปเบเปโ. เปเบ "เบเบฒเบเปเบฅเบทเบญเบ" เบกเบฑเบเบเบทเบเบเบงเบเบเบธเบกเปเบเบเบญเบธเบเบฐเบเบญเบเบเปเปเบเปเบงเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ (เปเบเบดเปเบ 9.1.4):
เบเปเบฒเบเบญเบเบเบดเบเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเบฑเบ PIN เบเบฑเบเบเบฑเบเบชเบฐเบซเบผเบฑเบ, เบเบปเบงเบฅเบปเบเบเบฐเบเบฝเบ PIN เบเบฐเบเบทเบเบเบดเบเปเบเปเบเบฒเบ เปเบฅเบฐ pin เปเบกเปเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ pin peripheral.
เบเบฒเบเบเปเบฒเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบเบญเบเปเบเปเบฅเบฐ pin เปเบกเปเบเบญเบฐเบเบดเบเบฒเบเบขเบนเปเปเบ เบเบดเบเบฒเบก Pin เปเบเปเบเบเปเปเบกเบนเบเปเบกเปเบเบขเบนเปเปเบเบฎเบนเบเบเบตเปเบเบฒเบงเปเบซเบฅเบ. เบเปเปโเบเบฑเบโเบเปเบฒโเบเบฒเบกโเบเบญเบโเบชเบดเปเบโเบเบตเปโเบเบฐโเปเบฎเบฑเบโเปเบเบงโเปเบโเบเปเบฒโเบซเบฒเบโเบงเปเบฒ pin เบกเบตโเบซเบเปเบฒโเบเบตเปโเบเบฒเบโเปเบฅเบทเบญเบโเบเปเบฒโเบเบงเบโเบซเบเบถเปเบโ, เบเปเบฒโเบเบญเบโเปเบกเปเบโเปเบเปโเบฎเบฑเบโเปเบเบ footnote เปเบ datasheetโ:
เบเปเบฒเบญเบธเบเบฐเบเบญเบเบเปเปเบเปเบงเบเบซเบผเบฒเบเบญเบฑเบเปเบเป PIN เบเบฝเบงเบเบฑเบ, เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบฑเบเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฑเบเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบ, เบเบงเบเปเบเปเบญเบธเบเบฐเบเบญเบเบเปเปเบเปเบงเบเบญเบฑเบเบเบฝเบงเปเบเปเบงเบฅเบฒเบเบฝเบง, เบชเบฐเบซเบผเบฑเบเปเบเบเปเบเปเปเบกเบเบเปเปเบเปเบฒเบเปเบเบตเบเปเบซเปเบเบดเบ (เบขเบนเปเปเบเบเบฐเบเบฝเบ RCC เบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก).
เบชเบธเบเบเปเบฒเบ, pins เปเบเบฎเบนเบเปเบเบเบเบปเบเบเบฐเบฅเบดเบเบเบฑเบเบกเบตเบเบงเบฒเบกเปเบงเปเบกเบ. เบเบตเปเปเบกเปเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบฒเบเบเบฐเบซเบเบฑเบเบเบฐเบฅเบฑเบเบเบฒเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบ; เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเบฑเปเบเบกเบฑเบเปเบงเปเบชเบนเบเบชเบธเบเปเบฅเบฐเบฅเบทเบกเบกเบฑเบ.
เบเบฑเปเบเบเบฑเปเบ: เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเป SPI, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบชเบญเบ pins (เบกเบตเบเปเปเบกเบนเบเปเบฅเบฐเบชเบฑเบเบเบฒเบเปเบกเบ) เบเบงเบเบเบฐเปเบเบฑเบ "เบเบฑเบเบเบฑเบ push-pull เบเบฒเบเปเบฅเบทเบญเบ", เปเบฅเบฐเบญเบตเบเบญเบฑเบเบซเบเบถเปเบ (LAT) เบเบงเบเบเบฐเปเบเบฑเบ "เบเบปเบเบเบฐเบเบด push-pull". เปเบเปเบเปเบญเบเบเบตเปเบเบฐเบกเบญเบเบซเบกเบฒเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒ, เปเบซเปเบเบฑเบเบเบฒเบเบเบฑเบ SPI.
SPI
เปเบเบเบเบฒเบเบเบฒเบเบชเบถเบเบชเบฒเบเบฐเบซเบเบฒเบเบเปเบญเบเบญเบตเบเบญเบฑเบเบซเบเบถเปเบ
SPI เบซเบผเบท Serial Peripheral Interface (serial peripheral interface) เปเบกเปเบเบเบฒเบเปเบเปเบเบญเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเป MK เบเบฑเบ MKs เบญเบทเปเบเปเปเบฅเบฐเปเบฅเบเบเบฒเบเบเบญเบเปเบเบเบเบปเปเบงเปเบ. เบซเบผเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบกเบฑเบเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบฅเปเบงเบเปเบฒเบเปเบเบดเบ, เบเปเบญเบเบเบตเปเบเปเบฝเบงเบเบฑเบเปเบเปเบงเบต LED เบเบญเบเบเบตเบ (เปเบเบเบนเปเบกเบทเบญเปเบฒเบเบญเบตเบ, เปเบเบดเปเบเบเบฒเบ 25). SPI เบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบขเบนเปเปเบเบฎเบนเบเปเบเบเบเบปเปเบเบชเบฐเบเบฑเบ ("เบเบฒเบ") เปเบฅเบฐเบเบฒเบ ("เบเบฒเบ"). SPI เบกเบตเบชเบตเปเบเปเบญเบเบเบฒเบเบเบทเปเบเบเบฒเบ, เปเบเบดเปเบเบเปเปเปเบกเปเบเบเบฑเบเบซเบกเบปเบเบญเบฒเบเบเบฐเบเบทเบเบเปเบฒเปเบเป:
- MOSI, Master Output / Slave Input: PIN เบเบตเปเบชเบปเปเบเบเปเปเบกเบนเบเปเบเบฎเบนเบเปเบเบเปเบกเปเปเบเบ, เปเบฅเบฐเบฎเบฑเบเบเปเปเบกเบนเบเปเบเปเบซเบกเบเบชเปเบฒเบฅเบญเบ;
- MISO, Master Input / Slave Output: เปเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เบกเบฑเบเปเบเปเบฎเบฑเบเปเบเปเบกเปเบเบปเบ, เปเบฅเบฐเบชเบปเปเบเปเบเบชเปเบฒเบฅเบญเบ;
- SCK, Serial Clock: เบเปเบฒเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบญเบเบเบฒเบเบชเบปเปเบเบเปเปเบกเบนเบเปเบเปเบกเปเบเบปเบเบซเบผเบทเปเบเปเบฎเบฑเบเบชเบฑเบเบเบฒเบเปเบกเบเปเบเบชเปเบฒเบฅเบญเบ. เบเบฒเบเบเบตเปเบเบเบเบทเปเบเบเบฒเบ;
- SS, Slave Select: เบเปเบงเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบเบเปเบญเบเบเบฒเบเบเบตเป, เบชเปเบฒเบฅเบญเบเบฎเบนเปเบงเปเบฒเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฒเบเบฅเบฒเบง. เปเบ STM32 เบกเบฑเบเบเบทเบเปเบญเบตเปเบเบงเปเบฒ NSS, เบเปเบญเบเบเบตเป N = เบฅเบปเบ, i.e. เบเบนเปเบเบงเบเบเบธเบกเบเบฐเบเบฒเบเปเบเบฑเบเบเบฒเบเบเปเบฒเบกเบตเบเบทเปเบเบเบตเปเบขเบนเปเปเบเบเปเบญเบเบเบฒเบเบเบตเป. เบกเบฑเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเปเบเปเบเบตเบเบฑเบเปเบซเบกเบ Open Drain Output, เปเบเปเบเบฑเปเบเปเบกเปเบเปเบฅเบทเปเบญเบเบญเบทเปเบ.
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเบดเปเบเบญเบทเปเบ, SPI เปเบ STM32 เปเบกเปเบเบญเบธเบเบปเบกเบชเบปเบกเบเบนเบเปเบเบซเบเปเบฒเบเบตเป, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเบฒเบเบเบตเปเบเบฐเปเบเบปเปเบฒเปเบ. เบเบปเบงเบขเปเบฒเบ, เบกเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเปเปเบเบฝเบเปเบเปเบเบฑเบ SPI, เปเบเปเบเบฑเบเบกเบตเบเบฒเบเปเบเปเบเบญเบ I2S, เปเบฅเบฐเปเบเปเบญเบเบฐเบชเบฒเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบเบงเบเบกเบฑเบเบเบทเบเบเบฐเบชเบปเบก, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเปเบเบเบฑเบเบเบต. เบงเบฝเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบเบเปเบฒเบเบเบฒเบเบเบตเปเบชเบธเบ: เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบชเบปเปเบเบเปเปเบกเบนเบเปเบเบเปเบเปเบเบฝเบเปเบเป MOSI เปเบฅเบฐ SCK. เบเบงเบเปเบฎเบปเบฒเปเบเบซเบฒเบเบฒเบ 25.3.4 (half-duplex communication, half-duplex communication), เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒ 1 เปเบกเบ เปเบฅเบฐ 1 เบชเบฒเบเบเปเปเบกเบนเบ unidirectional (1 เบชเบฑเบเบเบฒเบเปเบกเบ เปเบฅเบฐ 1 เบเบฐเปเบชเบเปเปเบกเบนเบ unidirectional):
เปเบเปเบซเบกเบเบเบตเป, เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเป SPI เปเบเบฎเบนเบเปเบเบเบเบฒเบเบชเบปเปเบเปเบเบปเปเบฒเบเบฑเปเบเบซเบผเบทเบฎเบฑเบเปเบเบปเปเบฒเบเบฑเปเบ. / เปเปเบเบเบฒเบเบเปเบฒเบเบเบญเบเบขเปเบฒเบเบเบฝเบงเปเบกเปเบเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเปเปเบ duplex: เบเปเปเบกเบนเบเบเบทเบเบชเบปเปเบเบเปเบฒเบ PIN เบชเบปเปเบ (MOSI เปเบเปเปเบเปเบกเปเปเบเบ เบซเบผเบท MISO เปเบเปเปเบเบเปเบฒเบเบฒเบ), เปเบฅเบฐ PIN เบฎเบฑเบ (MISO เบซเบผเบท MOSI เบเบฒเบกเบฅเบณเบเบฑเบ) เบชเบฒเบกเบฒเบเปเบเปเปเบเบฑเบ PIN I/O เบเบปเบเบเบฐเบเบดเปเบเป. . เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเปเปเบชเบปเบเปเบ Rx buffer (เบเปเบฒเบกเบฑเบเบเบทเบเบญเปเบฒเบ, เบกเบฑเบเบเบฐเบเปเปเบกเบตเบเปเปเบกเบนเบเบเบตเปเบเบทเบเปเบญเบเบขเบนเปเบเบตเปเบเบฑเปเบ).
เบเบตเบซเบผเบฒเบ, PIN MISO เปเบกเปเบเบเปเปเปเบชเบเบเปเบฒ, เปเบซเปเปเบเบทเปเบญเบกเบเปเปเบชเบฑเบเบเบฒเบ LAT เบเบฑเบเบกเบฑเบ. เปเบซเปเปเบเบดเปเบ Slave Select, เปเบเบดเปเบเบขเบนเปเปเบ STM32 เบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเบเปเบงเบเปเบเบฃเปเบเบฃเบก, เปเบเบดเปเบเบชเบฐเบเบงเบเบเบตเปเบชเบธเบ. เบเบงเบเปเบฎเบปเบฒเบญเปเบฒเบเบงเบฑเบเบเบญเบเบเบทเปเบเบฝเบงเบเบฑเบเบขเบนเปเปเบเบเบฒเบ 25.3.1 SPI เบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบปเปเบงเปเบ:
เบเบฒเบเบเบงเบเบเบธเบกเบเบญเบเปเบง NSS (SSM = 1) / เบเปเปเบกเบนเบเบเบฒเบเปเบฅเบทเบญเบเบชเปเบฒเบฅเบญเบเปเบกเปเบเบเบฑเบเบเบธเบขเบนเปเปเบ SSI bit เบเบญเบ SPI_CR1 เบฅเบปเบเบเบฐเบเบฝเบ. PIN NSS เบเบฒเบเบเบญเบเบเบฑเบเบเบปเบเบเปเปเปเบชเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบญเบทเปเบเป.
เบกเบฑเบเปเบเบฑเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบฝเบเปเบชเปเบเบฐเบเบฝเบ. เบเปเบญเบเบเบฑเบเบชเบดเบเปเบเปเบเป SPI2, เบเบญเบเบซเบฒเบเบตเปเบขเบนเปเบเบทเปเบเบเบฒเบเบเบญเบเบกเบฑเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบ - เปเบเบเบฒเบ 3.3 Memory Map:
เปเบฅเปเบง, เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบ:
#define _SPI2_(mem_offset) (*(volatile uint32_t *)(0x40003800 + (mem_offset)))
เปเบเบตเบเบเบฒเบ 25.3.3 เบเปเบงเบเบซเบปเบงเบเปเปเบเบฒเบเบญเบฐเบเบดเบเบฒเบเบเปเบงเบเบเบปเบเปเบญเบ โเบเบฒเบเบเบณเบเบปเบเบเปเบฒ SPI เปเบเปเปเบเปเบกเปเบเบปเบโ:
1. เบเบฑเปเบเบเบงเบฒเบกเบเบตเปเบเบญเบเปเบกเบ serial เบเปเบงเบ bits BR[2:0] เปเบเบเบฐเบเบฝเบ SPI_CR1.
เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบทเบเปเบเบฑเบเบขเบนเปเปเบเบชเปเบงเบเบเบนเปเบกเบทเบญเปเบฒเบเบญเบตเบเบเบญเบเบเบทเปเบเบฝเบงเบเบฑเบ. เบเปเบฝเบเบเบตเปเบขเบนเป (เบเบตเปเบขเบนเป เบเบปเบเปเบเบตเบ) เบชเปเบฒเบฅเบฑเบ CR1 โ 0x00, เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ bits เบเบฑเบเบซเบกเบปเบเบเบทเบเบฅเบถเบเบฅเปเบฒเบ (เบเบฑเบเบเปเบฒ 0x0000):
เบเบดเบ BR เบเปเบฒเบเบปเบเบเบปเบงเปเบเปเบเปเบกเบเบเบงเบเบเบธเบก, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเปเบฒเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบญเบ SPI เบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ. เบเบงเบฒเบกเบเบตเป STM32 เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบฑเบ 72 MHz, เปเบเปเบงเบต LED, เบญเบตเบเบเบฒเบกเปเบเปเบเบเปเปเบกเบนเบเบเบญเบเบกเบฑเบ, เปเบฎเบฑเบเบงเบฝเบเบเปเบงเบเบเบงเบฒเบกเบเบตเปเปเบเบดเบ 25 MHz, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบญเบญเบเบเปเบงเบเบชเบตเป (BR[2:0] = 001).
#define _SPI_CR1 0x00
#define BR_0 0x0008
#define BR_1 0x0010
#define BR_2 0x0020
_SPI2_ (_SPI_CR1) |= BR_0;// pclk/4
2. เบเบฑเปเบเบเปเบฒเบเบดเบ CPOL เปเบฅเบฐ CPHA เปเบเบทเปเบญเบเปเบฒเบเบปเบเบเบงเบฒเบกเบชเบณเบเบฑเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบญเบเบเปเปเบกเบนเบ เปเบฅเบฐเปเบงเบฅเบฒเปเบกเบเบเบฒเบกเบฅเปเบฒเบเบฑเบ (เปเบเบดเปเบเปเบเบเบงเบฒเบเปเบเปเปเบฒ 240)
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบญเปเบฒเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบเบขเบนเปเบเบตเปเบเบตเปเปเบฅเบฐเบเปเปเปเบเปเปเบเบดเปเบ schematics, เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเปเปเบเบงเบฒเบกเบเบญเบ CPOL เปเบฅเบฐ CPHA bits เปเบเบซเบเปเบฒ 704 (SPI General Description):
เปเบฅเบเบฐเปเบกเบ เปเบฅเบฐเบเบปเปเบงเปเบฅเบ
เบเบฒเบเบเปเบฒเปเบเป CPOL เปเบฅเบฐ CPHA bits เบเบญเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ SPI_CR1, เบเปเบฒเบเบชเบฒเบกเบฒเบ programmatically เปเบฅเบทเบญเบเบชเบตเปเบเบฒเบเบเบปเบงเบเบฑเบเบเบตเปเปเบเปเปเบงเบฅเบฒ. เบเบดเบ CPOL (clock polarity) เบเบงเบเบเบธเบกเบชเบฐเบเบฒเบเบฐเบเบญเบเบชเบฑเบเบเบฒเบเปเบกเบเปเบเปเบงเบฅเบฒเบเบตเปเบเปเปเบกเบตเบเบฒเบเบชเบปเปเบเบเปเปเบกเบนเบ. เบเบดเบเบเบตเปเบเบงเบเบเบธเบกเบฎเบนเบเปเบเบเบเบปเปเบเบชเบฐเบเบฑเบเปเบฅเบฐเบชเปเบฒเบฅเบญเบ. เบเปเบฒ CPOL เบเบทเบเบฃเบตเปเบเบฑเบ, PIN SCK เปเบกเปเบเบเปเปเบฒเบขเบนเปเปเบเปเปเบเบเบฑเบเบเปเบญเบ. เบเปเบฒเบเบดเบ CPOL เบเบทเบเบเบฑเปเบ, PIN SCK เบเบฐเบชเบนเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฑเบเบเปเบญเบ.
เปเบกเบทเปเบญ CPHA (เปเบฅเบเบฐเปเบกเบ) เบเบดเบเบเบทเบเบเบฑเปเบ, เบชเบนเบเบเบดเบเบเบฑเบ strobe เปเบกเปเบเบเบญเบเบเบตเบชเบญเบเบเบญเบเบชเบฑเบเบเบฒเบ SCK (เบซเบผเบธเบเบฅเบปเบเบเปเบฒ CPOL เบเบฑเบเปเบเบ, เปเบเบตเปเบกเบเบถเปเบเบเปเบฒ CPOL เบเบทเบเบเบฑเปเบ). เบเปเปเบกเบนเบเบเบทเบเบเบฑเบเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเปเบเบเบตเบชเบญเบเบเบญเบเบชเบฑเบเบเบฒเบเปเบกเบ. เบเปเบฒเบเบดเบเบเบญเบ CPHA เปเบกเปเบเบเบฐเปเบเปเบ, เบชเบนเบเบเบดเบเบเบฑเบ strobe เปเบกเปเบเบเบญเบเบเบตเปเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบชเบฑเบเบเบฒเบ SCK (เปเบเบเบซเบผเบธเบเบฅเบปเบเบเปเบฒ CPOL เบเบทเบเบเบฑเปเบ, เบเบญเบเปเบเบตเปเบกเบเบถเปเบเบเปเบฒ CPOL เบเบทเบเบฅเปเบฒเบ). เบเปเปเบกเบนเบเบเบทเบเบเบฑเบเบขเบนเปเบเบตเปเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเบญเบเบชเบฑเบเบเบฒเบเปเบกเบ.
เบกเบตเบเบฒเบเบเบนเบเบเบถเบกเบเบงเบฒเบกเบฎเบนเปเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบกเบฒเบชเบฐเบซเบฅเบธเบเบงเปเบฒเบเบฑเบเบชเบญเบเบเบดเบเบเปเบญเบเบเบฑเบเบเบปเบเปเบเบฑเบเบชเบนเบ, เปเบเบฒเบฐเบงเปเบฒ เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบซเปเบชเบฑเบเบเบฒเบ SCK เบเบฑเบเบเบปเบเบเปเปเบฒเปเบกเบทเปเบญเบเปเปเปเบเปเปเบเป, เปเบฅเบฐเบเปเปเบกเบนเบเบเบฐเบเบทเบเบชเบปเปเบเบขเบนเปเปเบเบเบญเบเปเบเบเบเบตเปเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเปเบฒเบกเบฐเบเบญเบ (เปเบเบดเปเบเบฎเบนเบ. เบเบญเบโเปเบเบตเปเบกโเบเบถเปเบ เปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบ DM634).
เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบปเบเบเบฑเบเบเบธเบเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเปเบฒเบชเบฑเบเปเบเปเบญเบเบฐเบชเบฒเบ ST เบเปเบฒเบญเบดเบ: เปเบเบเบงเบเบกเบฑเบเบเปเบฒเบงเปเบฒ "เบเบฑเบเบเบดเบเปเบเบฑเบเบชเบนเบ" เบเบทเบเบเบฝเบ. เปเบเบทเปเบญโเบเบฑเบโเปเบซเบกเปโเปเบฅเบฑเบโเบเปเบญเบโเปเบฅเบฐเบเปเป เปเบเบทเปเบญเบญเบฐเบเบฒเปเบกเปเบฅเบฑเบเบเปเบญเบ, เปเบเบฑเปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, Atmega.
3. เบเบฑเปเบ DFF bit เปเบเบทเปเบญเบเปเบฒเบเบปเบเบงเปเบฒเบเบฅเบฑเบญเบเบเปเปเบกเบนเบเปเบเบฑเบเบฎเบนเบเปเบเบ 8-bit เบซเบผเบท 16-bit
เปเบเบเบชเบฐเปเบเบฒเบฐเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบญเบปเบฒ 16-bit DM634 เปเบเบทเปเบญเบเปเปเปเบซเปเบฅเบปเบเบเบงเบเบเบฑเบเบเบฒเบเบชเบปเปเบเบเปเปเบกเบนเบ 12-bit PWM, เปเบเบฑเปเบ DM633. เบกเบฑเบเบชเบปเบกเปเบซเบเบชเบปเบกเบเบปเบเบเบตเปเบเบฐเบเบฑเปเบ DFF เปเบเบฑเบเบญเบฑเบเบเบฝเบง:
#define DFF 0x0800
_SPI2_ (_SPI_CR1) |= DFF; // 16-bit mode
4. เบเบณเบเบปเบเบเปเบฒ LSBFIRST bit เบขเบนเปเปเบเบเบฐเบเบฝเบ SPI_CR1 เปเบเบทเปเบญเบเบณเบเบปเบเบฎเบนเบเปเบเบเบเบฅเบฑเบญเบ
LSBFIRST, เบเบฒเบกเบเบทเปเบเบญเบเบกเบฑเบเบเบตเปเปเบซเปเปเบซเบฑเบ, เบเบฑเปเบเบเปเบฒเบเบฒเบเบชเบปเปเบเบเปเบฒเบเบเบตเปเบกเบตเบเปเบญเบเบเบตเปเบชเบธเบเบเปเบญเบ. เปเบเป DM634 เบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเบญเบเบเบตเปเบชเปเบฒเบเบฑเบ. เปเบเบฒเบฐเบชเบฐเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเปเบซเปเบกเบฑเบเบเบฑเปเบเปเบซเบกเป.
5. เปเบเปเบซเบกเบเบฎเบฒเบเปเบง, เบเปเบฒเบเปเบญเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเบฒเบ PIN NSS, เปเบเปเบชเบฑเบเบเบฒเบเบชเบนเบเปเบชเป PIN NSS เปเบเบฅเบฐเบซเบงเปเบฒเบเบฅเปเบฒเบเบฑเบเบเบฒเบเปเบญเบ byte เบเบฑเบเบซเบกเบปเบ. เปเบเปเบซเบกเบเบเบญเบเปเบง NSS, เปเบซเปเบเบฑเปเบ SSM เปเบฅเบฐ SSI bits เปเบเบเบฐเบเบฝเบ SPI_CR1. เบเปเบฒ PIN NSS เบเบทเบเปเบเปเปเบเบฑเบเบเบปเบเบเบฐเบฅเบดเบ, เบเบฝเบเปเบเปเบเปเบญเบเบเบฑเปเบเบเปเบฒเบเบดเบ SSOE.
เบเบดเบเบเบฑเปเบ SSM เปเบฅเบฐ SSI เปเบเบทเปเบญเบฅเบทเบกเบเปเบฝเบงเบเบฑเบเปเบซเบกเบเบฎเบฒเบเปเบง NSS:
#define SSI 0x0100
#define SSM 0x0200
_SPI2_ (_SPI_CR1) |= SSM | SSI; //enable software control of SS, SS high
6. เบเปเบญเบเบเบฑเปเบเบเปเบฒเบเบดเบ MSTR เปเบฅเบฐ SPE (เบเบงเบเบกเบฑเบเบเบฑเบเบเบปเบเบเบฑเปเบเปเบงเปเบเปเบฒเบชเบฑเบเบเบฒเบ NSS เบชเบนเบเปเบเบปเปเบฒเบเบฑเปเบ)
เบเบปเบงเบเบดเบเปเบฅเปเบง, เบเปเบงเบเบเบดเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบ SPI เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเปเบกเปเบเบปเบเปเบฅเบฐเปเบเบตเบเบกเบฑเบ:
#define MSTR 0x0004
#define SPE 0x0040
_SPI2_ (_SPI_CR1) |= MSTR; //SPI master
//ะบะพะณะดะฐ ะฒัะต ะณะพัะพะฒะพ, ะฒะบะปััะฐะตะผ SPI
_SPI2_ (_SPI_CR1) |= SPE;
SPI เบเบทเบเบเบฑเปเบเบเปเบฒ, เปเบซเปเบเบฝเบเบซเบเปเบฒเบเบตเปเบเบฑเบเบเบตเบเบตเปเบชเบปเปเบ bytes เบเบฑเบเบเบปเบเบเบฑเบ. เบชเบทเบเบเปเปเบเบฒเบเบญเปเบฒเบ 25.3.3 โเบเบฒเบเบเบฑเปเบเบเปเบฒ SPI เปเบเบฎเบนเบเปเบเบเบเบปเปเบเบชเบฐเบเบฑเบโ:
เบเปเบฒเบชเบฑเปเบเปเบญเบเบเปเปเบกเบนเบ
เบเบฒเบเบชเบปเปเบเบเปเปเบกเบนเบเปเบฅเบตเปเบกเบเบปเปเบเปเบกเบทเปเบญ byte เบเบทเบเบเบฝเบเปเบเบเบตเป Tx buffer.
byte เบเปเปเบกเบนเบเปเบกเปเบ loaded เปเบเบปเปเบฒเปเบเปเบ shift register at เบเบฐเปเบฒเบ เปเบซเบกเบ (เบเบฒเบเบฅเบปเบเปเบกเบเบฒเบเปเบ) เปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบชเบปเปเบเบเบญเบ bit เบเปเบฒเบญเบดเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบทเบเบชเบปเปเบเบเบฑเบ เบฅเบณเบเบฑเบ เปเปเบ PIN MOSI, เบเบดเบเบเบณเบญเบดเบ เบซเบผเบทเบชเบธเบเบเปเบฒเบเปเบเบเปเบฒเบเปเปเบฒ เบเบถเปเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบ LSBFIRST bit เปเบเบเบฐเบเบฝเบ CPI_CR1. เบเบธเบ TXE เบเบทเบเบเบฑเปเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบชเบปเปเบเบเปเปเบกเบนเบ เบเบฒเบ Tx buffer เปเบเบทเปเบญเบเปเบฝเบเบเบฐเบเบฝเบ, เปเบฅเบฐเบเบฑเบเบชเปเบฒเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเบเปเบฒเบเบดเบ TXEIE เปเบเบเบฐเบเบฝเบ CPI_CR1 เบเบทเบเบเบฑเปเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบเบฑเปเบเปเบชเปเบชเบญเบเบชเบฒเบกเบเปเบฒเปเบเบเบฒเบเปเบเบเบฒเบชเบฒเปเบเบทเปเบญเบเบถเบเบเบนเบเบเบงเบฒเบกเบชเบปเบเปเบเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบซเบเบถเปเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ SPI เปเบเบเบปเบงเบเบงเบเบเบธเบก STM. เปเบ Atmega เบเบธเบ TXE (Tx เบซเบงเปเบฒเบเปเบเบปเปเบฒ, tx เบซเบงเปเบฒเบเปเบเบปเปเบฒเปเบฅเบฐเบเปเบญเบกเบเบตเปเบเบฐเบฎเบฑเบเบเปเปเบกเบนเบ) เบเบทเบเบเปเบฒเบเบปเบเบเบฝเบเปเบเปเบซเบผเบฑเบเบเบฒเบ byte เบเบฑเบเบซเบกเบปเบเปเบเปเบเบทเบเบชเบปเปเบ เบเบฒเบเบเบญเบ. เปเบฅเบฐเปเบเบเบตเปเบเบตเปเบเบธเบเบเบตเปเบเบทเบเบเบฑเปเบเบซเบผเบฑเบเบเบฒเบ byte เปเบเปเบเบทเบเปเบชเปเปเบเบปเปเบฒเปเบเปเบเบเบฐเบเบฝเบ shift เบเบฒเบเปเบ. เปเบเบทเปเบญเบเบเบฒเบเบกเบฑเบเบเบทเบเบเบนเปเบขเบนเปเบเบตเปเบเบฑเปเบเบเปเบงเบเบเบดเบเบเบฑเบเบซเบกเบปเบเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ (เปเบเบเบฐเบซเบเบฒเบ), เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบนเบเบเบทเบเปเบญเบเบเบฒเบกเบฅเปเบฒเบเบฑเบ, TXE เบเบทเบเบเปเบฒเบเบปเบเบเปเบญเบเบเบตเป byte เบเบฐเบเบทเบเบชเบปเปเบเบซเบกเบปเบ. เบเบตเปเปเบกเปเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเปเบเบฒเบฐเบงเปเบฒ เปเบเบเปเบฅเบฐเบเบตเบเบญเบเปเบเปเบงเบต LED เบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบถเบ pin LAT เบซเบผเบฑเบเบเบฒเบเบชเบปเปเบ ะฒัะตั เบเปเปเบกเบนเบ, i.e. เบเบธเบ TXE เบขเปเบฒเบเบเบฝเบงเบเบฐเบเปเปเบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒ.
เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบธเบเบญเบทเปเบ. เบฅเบญเบเปเบเบดเปเบ 25.3.7 - โเบเบธเบเบชเบฐเบเบฒเบเบฐโ:
<โฆ>
เบเบธเบ BUSY
เบเบธเบ BSY เบเบทเบเบเบฑเปเบเปเบฅเบฐเบเบทเบเบฅเบถเบเบฅเปเบฒเบเปเบเบเบฎเบฒเบเปเบง (เบเบฒเบเบเบฝเบเบกเบฑเบเบเปเปเบกเบตเบเบปเบ). เบเบธเบ BSY เบเบตเปเบเบญเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบฑเปเบเบเบฒเบเบชเบทเปเบชเบฒเบ SPI.
เบกเบฑเบเบฃเบตเปเบเบฑเบ:
เปเบกเบทเปเบญโเบเบฒเบโเปเบญเบโเปเบเปโเบชเปเบฒโเปเบฅเบฑเบ (เบเบปเบโเปเบงเบฑเปเบโเปเบโเบฎเบนเบโเปเบเบโเบเบปเปเบโเบชเบฐโเบเบฑเบโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบฒเบโเปเบญเบโเปเบกเปเบโเบเปเปโเปเบเบทเปเบญเบโ)
เปเบกเบทเปเบญ SPI เบเบทเบเบเบดเบเปเบเปเบเบฒเบ
เปเบกเบทเปเบญโเบกเบตโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโเบฎเบนเบโเปเบเบโเบเบปเปเบโเบชเบฐโเบเบฑเบโเปเบเบตเบโเบเบถเปเบ (MODF=1โ)
เบเปเบฒเบเบฒเบเปเบญเบเบเปเปเบเปเปเปเบเบทเปเบญเบ, เบเบธเบ BSY เบเบฐเบเบทเบเบฅเบถเบเบฅเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเปเบเปเบฅเบฐเบเบฒเบเปเบญเบเบเปเปเบกเบนเบ
เบเบปเบเบฅเบปเบ, เบเบตเปเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบ. เปเบซเปเบเบญเบเบซเบฒเบเปเบญเบเบเบตเป Tx buffer เบเบฑเปเบเบขเบนเป. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบญเปเบฒเบ "SPI Data Register":
Bits 15:0 DR[15:0] เบฅเบปเบเบเบฐเบเบฝเบเบเปเปเบกเบนเบ
เบเปเปเบกเบนเบเบเบตเปเปเบเปเบฎเบฑเบเบซเบผเบทเบเปเปเบกเบนเบเบเบตเปเบเบฐเบชเบปเปเบ.
เบเบฑเบเบเบถเบเบเปเปเบกเบนเบเปเบเปเบเบญเบญเบเปเบเบฑเบเบชเบญเบ buffers - เบซเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบ (buffer เบชเบปเปเบ) เปเบฅเบฐเบซเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบญเปเบฒเบ (เบฎเบฑเบ buffer). เบเบฒเบเบเบฝเบเบเบฑเบเบเบถเบเบเปเปเบกเบนเบเบเบฐเบเบฝเบเปเบเบเบตเป Tx buffer, เปเบฅเบฐเบเบฒเบเบญเปเบฒเบเบเบฒเบเบเบฐเบเบฝเบเบเปเปเบกเบนเบเบเบฐเบชเบปเปเบเบเบทเบเบเปเบฒเบเบตเปเบกเบตเบขเบนเปเปเบ Rx buffer.
เบเบต, เปเบฅเบฐเบฅเบปเบเบเบฐเบเบฝเบเบชเบฐเบเบฒเบเบฐเบเบฒเบ, เบเปเบญเบเบเบตเปเบกเบตเบเบธเบ TXE เปเบฅเบฐ BSY:
เบเบงเบเปเบฎเบปเบฒเบเบฝเบ:
#define _SPI_DR 0x0C
#define _SPI_SR 0x08
#define BSY 0x0080
#define TXE 0x0002
void dm_shift16(uint16_t value)
{
_SPI2_(_SPI_DR) = value; //send 2 bytes
while (!(_SPI2_(_SPI_SR) & TXE)); //wait until they're sent
}
เบเบต, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบปเปเบ 16 เปเบเบปเปเบฒเบชเบญเบ bytes, เบญเบตเบเบเบฒเบกเบเปเบฒเบเบงเบเบเบญเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบ LED driver, เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบเบเบตเป:
void sendLEDdata()
{
LAT_low();
uint8_t k = 16;
do
{ k--;
dm_shift16(leds[k]);
} while (k);
while (_SPI2_(_SPI_SR) & BSY); // finish transmission
LAT_pulse();
}
เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเบฎเบนเปเบงเปเบฒเบเบฐเบเบถเบ PIN LAT เปเบเบงเปเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบเบซเบฒ I/O.
เบเบฒเบเบกเบญเบเบซเบกเบฒเบ pins
เปเบ STM32F1, เบเบฐเบเบฝเบเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเบฐเบเบญเบ pins เปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเบดเบเบเบปเบเบเบฐเบเบด. เบกเบฑเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบกเบตเบเบงเบเบกเบฑเบเบซเบผเบฒเบเบเปเบงเบฒ Atmega, เปเบเปเบเบงเบเบกเบฑเบเบเบฑเบเปเบเบเบเปเบฒเบเบเบฒเบเบเบดเบ STM เบญเบทเปเบเป. เบเบฒเบเบเบต 9.1 เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบปเปเบงเปเบเบเบญเบ GPIO:
เปเบเปเบฅเบฐเบเบญเบ I/O เบเบธเบเบเบฐเบชเบปเบเบเบปเปเบงเปเบ (GPIO) เบกเบตเบเบฑเบเบเบถเบเบเบฒเบเบเบณเบเบปเบเบเปเบฒ 32-เบเบดเบ (GPIOx_CRL เปเบฅเบฐ GPIOx_CRH), เบชเบญเบเบเบฐเบเบฝเบเบเปเปเบกเบนเบ 32-เบเบดเบ (GPIOx_IDR เปเบฅเบฐ GPIOx_ODR), เบเบฐเบเบฝเบเบเบธเบ/เบฃเบตเปเบเบฑเบ 32-เบเบดเบ (GPIOx_BSRR), เบเบฐเบเบฝเบเบฃเบตเปเบเบฑเบ 16-เบเบดเบ (GPIOx_BRR) เปเบฅเบฐ 32- bit blocking register (GPIOx_LCKR).
เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบชเบญเบเบญเบฑเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเบดเบเบเบปเบเบเบฐเบเบด, เปเบฅเบฐเบเบฑเบเบเปเบญเบเบเปเบฒเบเบเปเปเบชเบฐเบเบงเบ, เปเบเบฒเบฐเบงเปเบฒ 16 เบฎเบนเบชเบฝเบเบเบทเบเบเบฐเปเบเบเบเบฐเบเบฒเบเปเบเบเบปเปเบงเบเบงเบเบกเบฑเบเปเบเบฎเบนเบเปเบเบ "เบชเบตเปเบเบดเบเบเปเปเบญเปเบฒเบ". เปเบซเบผเบปเปเบฒเบเบฑเปเบ. pins zero เบซเบฒเปเบเบฑเบเปเบกเปเบเบขเบนเปเปเบ CRL, เปเบฅเบฐเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเปเบกเปเบเบขเบนเปเปเบ CRH. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบเบกเบตเบเบดเบเบเบญเบ pins เบเบฑเบเบซเบกเบปเบเบเบญเบเบเปเบฒเปเบฎเบทเบญ - เบชเปเบงเบเบซเบผเบฒเบเปเบกเปเบเบเบฑเบเปเบซเบผเบทเบญเปเบเบดเปเบเบซเบเบถเปเบ "เบชเบฐเบซเบเบงเบ".
เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบ, เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป.
เบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบญเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเบเบฑเบเบเบงเบฒเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบฃเบตเปเบเบฑเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเปเบกเปเบเปเบเบฑเบเปเบฅเบทเปเบญเบเบเบฐเบซเบฅเบปเบเบเบตเปเบกเบฑเบเบเปเปเบฒเบเบฑเบเบเบฒเบเบชเปเบงเบ: เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบธเบเบขเปเบฒเบเปเบ BSRR เปเบเบปเปเบฒเบเบฑเปเบ, เบเปเบญเบเบเบตเป 16 bits เบชเบนเบเบเบงเปเบฒเบเบฐเบเบฑเบ pin เปเบเบฑเบเบชเบนเบ, เปเบฅเบฐเบเบปเบงเบเปเปเบฒเบเบฐเบเบทเบเบเบฑเปเบเปเบเบฑเบ 1, เบซเบผเบทเบเปเบฒเบเบชเบฒเบกเบฒเบ. เปเบเป BRR, 16 bits เบเปเปเบฒเบเบตเปเบเบฝเบเปเบเป reset pin . เบเปเบญเบเบกเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเบชเบญเบ. เบเบฐเบเบฝเบเปเบซเบผเบปเปเบฒเบเบตเปเบกเบตเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบเบปเบฒเบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฐเบฅเปเบฒเบกเบฐเบเบนเบเบฑเบ pins:
Atomic Set เบซเบผเบท Reset
เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบดเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฝเบเปเบเบฅเปเบเบฅเบก GPIOx_ODR เปเบเบฅเบฐเบเบฑเบเบเบดเบ: เบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบเบเบดเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเปเบงเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบเบเบฐเบฅเปเบฒเบกเบฐเบเบนเบเบฝเบง APB2. เบเบตเปเปเบกเปเบเบเบฑเบเบฅเบธเปเบเปเปเบเบเบเบฒเบเบเบฝเบ "1" เปเบชเปเบเบธเบเบฅเบปเบเบเบฐเบเบฝเบ / เบฃเบตเปเบเบฑเบ (GPIOx_BSRR เบซเบผเบท, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฝเบเปเบเป, GPIOx_BRR) เบเบญเบเบเบดเบเบเบตเปเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบ. เบเบดเบเบญเบทเปเบเปเบเบฐเบเบฑเบเบเบปเบเบเปเปเบเปเบฝเบเปเบเบ.
เบเบฑเบเบเบถเบเบเปเปเบกเบนเบเบกเบตเบเบทเปเบญเบฐเบเบดเบเบฒเบเบเบปเบเปเบญเบเบเปเบญเบเบเปเบฒเบ - IDR = เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ เบเบดเบโเบเบฒเบโเบเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบโ, เบเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบโเบเบฒเบโเบเปเบญเบโเบเปเปโเบกเบนเบโ; ODR = เบเบปเบเบเบฐเบฅเบดเบ Direction Register, เบฅเบปเบเบเบฐเบเบฝเบเบเบปเบเบเบฐเบฅเบดเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบเปเบญเบเบเบฒเบเบเบงเบเบกเบฑเบเบขเบนเปเปเบเปเบเบเบเบฒเบเบเบฐเบเบธเบเบฑเบ.
เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, เบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ. เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบงเบฒเบกเบชเบปเบเปเบเปเบ pins SPI เบเบตเบชเบญเบ, เบเบท PB13, PB14 เปเบฅเบฐ PB15, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบตเปเบเบดเปเบ CRH:
เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบเบฝเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบ bits เบเบฒเบ 20 เบซเบฒ 31.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบดเบเบญเบญเบเบเปเบฒเบเปเบเบดเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฒเบ pins, เบเบฑเปเบเบเบฑเปเบเปเบเบเบตเปเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบฎเบฑเบเปเบเบเบเปเปเบกเบตเบเบฒเบ screenshot, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเบฐเปเบงเบปเปเบฒเบงเปเบฒ MODE เบเปเบฒเบเบปเบเบเบดเบเบเบฒเบ (เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฑเบเบชเบญเบเบเบดเบเบเบทเบเบเบฑเปเบเปเบเบฑเบ 0) เปเบฅเบฐเบเบงเบฒเบกเปเบง pin (เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ 50MHz, i.e. เบเบฑเบเบชเบญเบ pin เปเบเบฑเบ "1"), เปเบฅเบฐ CNF เบเปเบฒเบเบปเบเบฎเบนเบเปเบเบ: เบเบปเบเบเบฐเบเบด "push-pull" - 00, "เบเบฒเบเปเบฅเบทเบญเบ" - 10. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบเปเบฒเบเปเบเบดเบ, pins เบเบฑเบเบซเบกเบปเบเบกเบตเบเบดเบเบเบตเบชเบฒเบกเบเบฒเบเบฅเบธเปเบกเบชเบธเบ (CNF0), เบกเบฑเบเบเบฑเปเบเปเบซเปเบเบงเบเปเบเบปเบฒเบขเบนเปเปเบเปเบซเบกเบ เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเปเบเบเปเบฅเบทเปเบญเบ.
เบเบฑเบเบเบฑเปเบเปเบเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบงเบฒเบเปเบเบเบเบตเปเบเบฐเปเบฎเบฑเบเบชเบดเปเบเบญเบทเปเบเบเบฑเบเบเบดเบเบเบตเป, เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเปเบฒเบเบปเบเบเปเบฒ MODE เปเบฅเบฐ CNF เบเบตเปเปเบเบฑเบเปเบเปเบเปเบเบฑเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบชเบญเบเบเบฐเบเบฝเบเบเบฒเบเบเบงเบเบเบธเบกเบเปเปเบฒเปเบฅเบฐเปเบเบดเบ.
เบเบฒเบเบขเปเบฒเบเบกเบฑเบเบญเบฑเบเบเบตเป
#define CNF0_0 0x00000004
#define CNF0_1 0x00000008
#define CNF1_0 0x00000040
#define CNF1_1 0x00000080
#define CNF2_0 0x00000400
#define CNF2_1 0x00000800
#define CNF3_0 0x00004000
#define CNF3_1 0x00008000
#define CNF4_0 0x00040000
#define CNF4_1 0x00080000
#define CNF5_0 0x00400000
#define CNF5_1 0x00800000
#define CNF6_0 0x04000000
#define CNF6_1 0x08000000
#define CNF7_0 0x40000000
#define CNF7_1 0x80000000
#define CNF8_0 0x00000004
#define CNF8_1 0x00000008
#define CNF9_0 0x00000040
#define CNF9_1 0x00000080
#define CNF10_0 0x00000400
#define CNF10_1 0x00000800
#define CNF11_0 0x00004000
#define CNF11_1 0x00008000
#define CNF12_0 0x00040000
#define CNF12_1 0x00080000
#define CNF13_0 0x00400000
#define CNF13_1 0x00800000
#define CNF14_0 0x04000000
#define CNF14_1 0x08000000
#define CNF15_0 0x40000000
#define CNF15_1 0x80000000
#define MODE0_0 0x00000001
#define MODE0_1 0x00000002
#define MODE1_0 0x00000010
#define MODE1_1 0x00000020
#define MODE2_0 0x00000100
#define MODE2_1 0x00000200
#define MODE3_0 0x00001000
#define MODE3_1 0x00002000
#define MODE4_0 0x00010000
#define MODE4_1 0x00020000
#define MODE5_0 0x00100000
#define MODE5_1 0x00200000
#define MODE6_0 0x01000000
#define MODE6_1 0x02000000
#define MODE7_0 0x10000000
#define MODE7_1 0x20000000
#define MODE8_0 0x00000001
#define MODE8_1 0x00000002
#define MODE9_0 0x00000010
#define MODE9_1 0x00000020
#define MODE10_0 0x00000100
#define MODE10_1 0x00000200
#define MODE11_0 0x00001000
#define MODE11_1 0x00002000
#define MODE12_0 0x00010000
#define MODE12_1 0x00020000
#define MODE13_0 0x00100000
#define MODE13_1 0x00200000
#define MODE14_0 0x01000000
#define MODE14_1 0x02000000
#define MODE15_0 0x10000000
#define MODE15_1 0x20000000
เบเบฑเบเปเบธเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเปเบเบขเบนเปเปเบเบดเบเบเบญเบ B (เบเบตเปเบขเบนเปเบเบฒเบ โ 0x40010C00), เบฅเบฐเบซเบฑเบ:
#define _PORTB_(mem_offset) (*(volatile uint32_t *)(0x40010C00 + (mem_offset)))
#define _BRR 0x14
#define _BSRR 0x10
#define _CRL 0x00
#define _CRH 0x04
//ะธัะฟะพะปัะทัะตะผ ััะฐะฝะดะฐััะฝัะน SPI2: MOSI ะฝะฐ B15, CLK ะฝะฐ B13
//LAT ะฟัััั ะฑัะดะตั ะฝะฐ ะฝะตะธัะฟะพะปัะทัะตะผะพะผ MISO โ B14
//ะพัะธัะฐะตะผ ะดะตัะพะปัะฝัะน ะฑะธั, ะพะฝ ะฝะฐะผ ัะพัะฝะพ ะฝะต ะฝัะถะตะฝ
_PORTB_ (_CRH) &= ~(CNF15_0 | CNF14_0 | CNF13_0 | CNF12_0);
//ะฐะปััะตัะฝะฐัะธะฒะฝัะต ััะฝะบัะธะธ ะดะปั MOSI ะธ SCK
_PORTB_ (_CRH) |= CNF15_1 | CNF13_1;
//50 ะะั, MODE = 11
_PORTB_ (_CRH) |= MODE15_1 | MODE15_0 | MODE14_1 | MODE14_0 | MODE13_1 | MODE13_0;
เปเบฅเบฐ, เบเบฒเบกเบเบงเบฒเบกเปเบซเบกเบฒเบฐเบชเบปเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเปเบฒเบเบดเบเบฒเบกเบชเปเบฒเบฅเบฑเบ LAT, เปเบเบดเปเบเบเบฐเบเบทเบเบเบดเบเปเบเบทเบญเบเปเบเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ BRR เปเบฅเบฐ BSRR:
/*** LAT pulse โ high, then low */
#define LAT_pulse() _PORTB_(_BSRR) = (1<<14); _PORTB_(_BRR) = (1<<14)
#define LAT_low() _PORTB_(_BRR) = (1<<14)
(LAT_low เปเบเบ inertia, เบกเบฑเบเปเบเบฑเบเปเบเบเบเบฑเปเบเบชเบฐ เปเปเบต เปเบ, เปเบซเปเบกเบฑเบเบขเบนเป)
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบต, เปเบเปเบกเบฑเบเบเปเปเปเบเปเบเบปเบ. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบตเปเปเบกเปเบ STM32, เบเบงเบเบกเบฑเบเบเบฐเบซเบเบฑเบเปเบเบเปเบฒ, เบเบถเปเบเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเบเปเบเปเปเบกเบเบเบญเบเบญเบธเบเบฐเบเบญเบเบเบตเปเบเปเบญเบเบเบฒเบ.
เปเบเบตเบเปเบเปเปเบกเบ
เปเบกเบ, เปเบเบดเปเบเปเบญเบตเปเบเบเบฑเบเบงเปเบฒเปเบกเบ, เบกเบตเปเปเบฒเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเปเบกเบ. เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบเบปเบงเบซเบเปเป RCC เปเบฅเปเบง. เบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒเบกเบฑเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบ: เบเบตเปเปเบกเปเบ Reset เปเบฅเบฐ Clock Control.
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเปเบงเปเบเปเบฒเบเปเบเบดเบ, เปเบเบเบเบต, เบเบฒเบเบชเปเบงเบเบเบตเปเบเบฒเบเบเบตเปเบชเบธเบเบเบญเบเบซเบปเบงเบเปเปเปเบกเบเปเบเปเบเบทเบเปเบฎเบฑเบเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบเบฐเบเบฒเบเบปเบเบเบฒเบ STM, เปเบเบดเปเบเบเบงเบเปเบฎเบปเบฒเบเปเบเบญเบเปเบเบเบงเบเปเบเบปเบฒเบซเบผเบฒเบ (เบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเปเบญเบเบเบฐเปเบซเปเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ
#define _RCC_(mem_offset) (*(volatile uint32_t *)(0x40021000 + (mem_offset)))
เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบซเปเบเบฅเบดเบเปเบชเปเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเปเบฒเบเบเบฐเบเบฒเบเบฒเบกเบเบญเบเบซเบฒเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเปเบเปเบ, เบซเบผเบท, เบเบตเบเบงเปเบฒ, เปเบเปเบเบเบเปเบฒเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบตเปเปเบเบตเบเบเปเบฒเปเบเปเบเบฒเบเบเบฒเบเบชเปเบงเบเบเปเบฝเบงเบเบฑเบ. เปเบเบตเบเปเบเปเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ. เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบซเบฒ RCC_APB1ENR เปเบฅเบฐ RCC_APB2ENR:
เปเบฅเบฐ, เบเบฒเบกเบเบฑเปเบ, เบเบงเบเบกเบฑเบเบกเบตเบเบดเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบเบญเบ SPI2, IOPB (I/O Port B) เปเบฅเบฐเบซเบเปเบฒเบเบตเปเบเบฒเบเปเบฅเบทเบญเบ (AFIO).
#define _APB2ENR 0x18
#define _APB1ENR 0x1C
#define IOPBEN 0x0008
#define SPI2EN 0x4000
#define AFIOEN 0x0001
//ะฒะบะปััะฐะตะผ ัะฐะบัะธัะพะฒะฐะฝะธะต ะฟะพััะฐ B ะธ ะฐะปัั. ััะฝะบัะธะน
_RCC_(_APB2ENR) |= IOPBEN | AFIOEN;
//ะฒะบะปััะฐะตะผ ัะฐะบัะธัะพะฒะฐะฝะธะต SPI2
_RCC_(_APB1ENR) |= SPI2EN;
เบฅเบฐเบซเบฑเบเบชเบธเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเป
เบเปเบฒเบเปเบฒเบเบกเบตเปเบญเบเบฒเบเปเบฅเบฐเบเบงเบฒเบกเบเบฒเบเบฐเบซเบเบฒเบเบตเปเบเบฐเบเบปเบเบชเบญเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบทเปเบญเบกเบเปเป DM634 เปเบเบเบเบตเป: DAI เบเบฑเบ PB15, DCK เบเบฑเบ PB13, LAT เบเบฑเบ PB14. เบเบงเบเปเบฎเบปเบฒเบเบฐเบฅเบฑเบเบเบฒเบเปเบเปเบงเบตเบเบฒเบ 5 volts, เบขเปเบฒเบฅเบทเบกเปเบเบทเปเบญเบกเบเปเปเบเบทเปเบเบเบฒเบ.
STM8 PWM
PWM เปเบ STM8
เปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบงเบฒเบเปเบเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบ, เปเบเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเบทเปเบญเบเบฐเบเบฒเบเบฒเบกเบเบฐเบเบดเบเบฑเบเบซเบเปเบฒเบเบตเปเบเบฒเบเบขเปเบฒเบเบเบญเบเบเบดเบเบเบตเปเบเปเปเบเบธเปเบเปเบเบตเบเปเบเบเปเบเปเบเบฝเบเปเบเปเปเบเปเบเบเปเปเบกเบนเบ, เปเบเบทเปเบญเบงเปเบฒเบเปเบญเบเบเบฐเบเปเปเบชเบดเปเบเบชเบธเบเบเปเบงเบเบเบนเปเบเบฐเบฅเบดเบเปเบเบตเบเปเบเบเบเปเปเบกเบตเปเบเบตเบ. STM8 เปเบกเปเบเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบปเบเบเบฒเบเบเบตเป: เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบญเบเบกเบตเบเบฐเบเบฒเบเบเบตเบเบชเบญเบเบเบนเปเบเบฑเบ STM8S103, เปเบฅเบฐเบญเบฑเบเบเบตเบชเบญเบ, เบกเบฑเบเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบปเบกเบซเบผเบฒเบ, เบชเบฐเบเบฑเปเบเบเบฒเบเบฅเปเปเบฅเบงเบเบเบตเปเบเบฐเบญเปเบฒเบเปเบฅเบฐเบเบญเบเบซเบฒเบงเบดเบเบตเปเบเปเปเบเปเบเบญเบดเบเปเบเบตเปเบเบฑเบเปเบกเปเบเบกเบฒเบเบฒเบเบเบฒเบเบเบฒเบเบงเบดเบเบตเปเบเปเปเบเปเบซเบผเบปเปเบฒเบเบตเป.
chip เบเบฑเบเบกเบต
เปเบกเบ เปเบฅเบฐ I/O
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, STM8 เปเบฎเบฑเบเบงเบฝเบเบขเบนเปเบเบตเปเบเบงเบฒเบกเบเบตเปเบเบญเบ 2 MHz, เบเบตเปเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเปเบเบเบฑเบเบเบต.
HSI (High Speed โโโโInternal) เปเบกเบ
เบชเบฑเบเบเบฒเบเปเบกเบ HSI เปเบกเปเบเบกเบฒเบเบฒเบเบเบฒเบเปเบ 16 MHz RC oscillator เบเบตเปเบกเบตเบเบปเบงเปเบเปเบเปเบเบเบเบฒเบ (1 เบซเบฒ 8). เบกเบฑเบเบเบทเบเบเปเบฒเบเบปเบเปเบงเปเปเบเบเบฐเบเบฝเบเบเบปเบงเปเบเปเบเปเบกเบ (CLK_CKDIVR).
เบซเบกเบฒเบเปเบซเบ: เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ, เปเบเบทเปเบญเบเบชเบฑเปเบเบชเบฐเปเบเบทเบญเบ HSI RC เบเบตเปเบกเบตเบเบปเบงเปเบเปเบ 8 เบเบทเบเปเบฅเบทเบญเบเปเบเบฑเบเปเบซเบผเปเบเบเปเบฒเบเบญเบเบชเบฑเบเบเบฒเบเปเบกเบ.
เบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒเบเบตเปเบขเบนเปเบฅเบปเบเบเบฐเบเบฝเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบ, เบเปเบฒเบญเบฐเบเบดเบเบฒเบเปเบ refman เปเบฅเบฐเปเบซเบฑเบเบงเปเบฒเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบถเบเบฅเปเบฒเบ:
#define CLK_CKDIVR *(volatile uint8_t *)0x0050C6
CLK_CKDIVR &= ~(0x18);
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบ PWM เปเบฅเบฐเปเบเบทเปเบญเบกเบเปเป LEDs, เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบ pinout:
เบเบดเบเปเบกเปเบเบเบฐเบซเบเบฒเบเบเปเบญเบ, เบซเบผเบฒเบเบซเบเปเบฒเบเบตเปเบเบทเบเปเบเบฐเบขเบนเปเปเบ pins เบเบฝเบงเบเบฑเบ. เบชเบดเปเบเบเบตเปเบขเบนเปเปเบเบงเบปเบเปเบฅเบฑเบเบชเบตเปเบซเบผเปเบฝเบกเปเบกเปเบ "เบเบฒเบเบเปเบฒเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบ", เบกเบฑเบเบเบทเบเบเปเบฝเบเปเบเบ "เบเบฒเบเปเบฅเบทเบญเบ bytes" (เบเบฒเบเปเบฅเบทเบญเบ bytes) - เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ: Atmega fuses. เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฝเบโเปเบเบโเบเบธเบโเบเปเบฒโเบเบญเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบเบโเบเบฒเบโ, เปเบเปโเบงเปเบฒโเบกเบฑเบโเบเปเปโเบเปเบฒโเปเบเบฑเบโ, เปเบเบฒเบฐโเบงเปเบฒโ เบเบฑเบเบเบฑเบเปเบซเบกเปเปเบกเปเบเปเบเบตเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบเบดเบเปเบเบตเบเปเบซเบกเปเปเบเบปเปเบฒเบเบฑเปเบ. เบกเบฑเบเบเปเบฒเบเบเบงเปเบฒเบเบตเปเบเบฐเปเบเป ST Visual Programmer (เบเบฒเบงเปเบซเบผเบเบเปเบงเบ Visual Develop), เปเบเบดเปเบเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเปเบซเบผเบปเปเบฒเบเบตเปเปเบเป. pinout เบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒ pins CH1 เปเบฅเบฐ CH2 เบเบญเบ timer เบเปเบฒเบญเบดเบเบเบทเบเปเบเบทเปเบญเบเปเบงเปเปเบเบงเบปเบเปเบฅเบฑเบเบชเบตเปเบซเบฅเปเบฝเบก; เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบ AFR1 เปเบฅเบฐ AFR0 bits เปเบ STVP, เปเบฅเบฐเบญเบฑเบเบเบตเบชเบญเบเบเบฑเบเบเบฐเปเบญเบเบเบปเบเบเบฐเบฅเบดเบ CH1 เบเบญเบเปเบกเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเบเบฒเบ PD4 เบเบฑเบ PC5.
เบเบฑเปเบเบเบฑเปเบ, 6 pins เบเบฐเบเบงเบเบเบธเบก LEDs: PC6, PC7 เปเบฅเบฐ PC3 เบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเปเบฒเบญเบดเบ, PC5, PD3 เปเบฅเบฐ PA3 เบชเปเบฒเบฅเบฑเบเบเบฑเปเบเบเบตเบชเบญเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒ I/O pins เบเปเบงเบเบเบปเบงเบกเบฑเบเปเบญเบเบขเบนเปเปเบ STM8 เปเบกเปเบเบเปเบฒเบเบเบฒเบเบเบงเปเบฒเปเบฅเบฐเบกเบตเปเบซเบเบเบปเบเบซเบผเบฒเบเบเปเบงเบฒเบขเบนเปเปเบ STM32:
- เบเบธเปเบเปเบเบตเบเบเบฒเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบดเบเบเบฒเบเบเปเปเบกเบนเบ Atmega DDR (เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบดเบเบเบฒเบเบเปเปเบกเบนเบ): 1 = เบเบปเบเบเบฐเบฅเบดเบ;
- เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเบเบงเบเบเบธเบกเบเปเบฒเบญเบดเบ CR1, เปเบกเบทเปเบญเบเบปเบเบเบฐเบฅเบดเบ, เบเปเบฒเบเบปเบเบฎเบนเบเปเบเบเบเบฒเบเบเบธเบเบเบนเปเบเบฒเบเบเบถเบ (1) เบซเบผเบทเบเปเปเบฅเบฐเบเบฒเบเบเปเปเบฒเปเบเบตเบ (0); เบเบฑเบเบเบฑเปเบเปเบเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบทเปเบญเบกเบเปเป LEDs เบเบฑเบ chip เบเบฑเบ cathodes, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบญเบญเบเบเบฒเบเบชเบนเบเบเบตเปเบเบตเป;
- เบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเบเบงเบเบเบธเบกเบเบตเบชเบญเบ CR2, เปเบกเบทเปเบญเบเบปเบเบเบฐเบฅเบดเบ, เบเปเบฒเบเบปเบเบเบงเบฒเบกเปเบงเปเบกเบ: 1 = 10 MHz
#define PA_DDR *(volatile uint8_t *)0x005002
#define PA_CR2 *(volatile uint8_t *)0x005004
#define PD_DDR *(volatile uint8_t *)0x005011
#define PD_CR2 *(volatile uint8_t *)0x005013
#define PC_DDR *(volatile uint8_t *)0x00500C
#define PC_CR2 *(volatile uint8_t *)0x00500E
PA_DDR = (1<<3); //output
PA_CR2 |= (1<<3); //fast
PD_DDR = (1<<3); //output
PD_CR2 |= (1<<3); //fast
PC_DDR = ((1<<3) | (1<<5) | (1<<6) | (1<<7)); //output
PC_CR2 |= ((1<<3) | (1<<5) | (1<<6) | (1<<7)); //fast
เบเบฒเบเบเบฑเปเบเบเปเบฒ PWM
เบเปเบฒเบญเบดเบ, เปเบซเปเบเปเบฒเบเบปเบเบเปเปเบเปเบฒเบเบปเบ:
- PWM เบเบงเบฒเบกเบเบตเป - เบเบงเบฒเบกเบเบตเปเบเบตเปเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเปเบฒเบเบเบดเบ;
- เปเบซเบผเบเบเบทเบเปเปเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, AR - เบเปเบฒ autoloadable เบชเบนเบโเปเบเบดเบโเบเบตเป timer เบเบฐโเบเบฑเบ (เปเบฅโเบเบฐโเบเปเบฒโเบกเบฐโเบเบญเบโ)โ;
- เบญเบฑเบเปเบเบเปเบซเบเบเบฒเบ, UEV โ เปเบซเบเบเบฒเบเบเบตเปเปเบเบตเบเบเบถเปเบเปเบกเบทเปเบญเปเบกเบเบเบฑเบเปเบงเบฅเบฒเบเบฑเบเปเบเบฑเบ AR;
- เบงเบปเบเบเบญเบเบซเบเปเบฒเบเบตเป PWM โ เบฎเบญเบเบงเบฝเบเปเปเบฒเบเบตเปเบเบญเบ PWM, เบกเบฑเบเบเบฐเปเบญเบตเปเบเบงเปเบฒ โเบเบฑเบเปเบเปเปเบฒเบเบตเปโ;
- เบเบฑเบเบเบถเบ/เบเบฝเบเบเบฝเบเบกเบนเบเบเปเบฒ - เบกเบนเบโเบเปเบฒโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบฑเบโเบเบฒเบ / เบเบฒเบโเบเบฝเบโเบเบฝเบโ, เบเบตเป timer เปเบเปโเบเบฑเบโ เบเบฐเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ (เปเบเบเปเบฅเบฐเบเบตเบเบญเบ PWM, เบกเบฑเบ inverts เบชเบฑเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบ);
- เบเปเบฒเบฅเปเบงเบเปเปเบฒ - เบเปเบฒ preloaded. เบเบฝเบเบเบฝเบเบกเบนเบเบเปเบฒ เบเปเปเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบเปเบเปเปเบเบเบฐเบเบฐเบเบตเปเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบทเบเปเบฒเบ, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบงเบปเบเบเบญเบ PWM เบเบฐเปเบเบ. เบเบฑเปเบเบเบฑเปเบ, เบกเบนเบเบเปเบฒเบเบฒเบเบเปเบฒเบเบเบญเบเปเบซเบกเปเปเบกเปเบเบเบทเบเบเบฑเบเปเบชเปเปเบ buffer เปเบฅเบฐเบเบถเบเบญเบญเบเปเบเปเบงเบฅเบฒเบเบตเป timer เบกเบฒเบฎเบญเบเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฒเบเบเบฑเบเบเบญเบเบซเบฅเบฑเบเบเบญเบเบกเบฑเบเปเบฅเบฐเบเบทเบเบเบฑเปเบเบเปเบฒเปเบซเบกเป;
- เบเบฑเบเบฎเบฝเบเบเบญเบ ะธ เปเปเบเบเบฑเบเบฎเบฝเบเบเบฒเบ - เบเบฒเบโเบเบฑเบโเบงเบฒเบโเบเบฒเบกโเบเบฒเบโเปเบเบโเปเบฅเบฐโเบขเบนเปโเปเบโเบชเบนเบโเบเบฒเบโ, เปเบเบฑเปเบโเบเบฝเบงโเบเบฑเบโเบเบฑเบ Atmel เบเบญเบโ PWM เปเบง ะธ PWM เปเบฅเบเบฐเบเบตเปเบเบทเบเบเปเบญเบ.
- OciREF, เบเบปเบเบเบฐเบฅเบดเบเบเบฝเบเบเบฝเบเบชเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบตเบ - เบชเบฑเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบญเปเบฒเบเบญเบตเบ, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบชเบดเปเบเบเบตเปเบเบฒเบเบปเบเบขเบนเปเปเบ pin เบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบเบฎเบนเบเปเบเบ PWM.
เบเบฑเปเบเบเบตเปเปเบซเบฑเบเปเบเปเบเบฑเบเปเบเบเบเบฒเบ pinout, เบชเบญเบเปเบกเบเบเบฑเบเปเบงเบฅเบฒเบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบ PWM - เบเปเบฒเบญเบดเบเปเบฅเบฐเบเบตเบชเบญเบ. เบเบฑเบเบชเบญเบเปเบกเปเบ 16-bit, เบเปเบฒเบญเบดเบเบกเบตเบเบธเบเบชเบปเบกเบเบฑเบเปเบเบตเปเบกเปเบเบตเบกเบซเบผเบฒเบ (เปเบเบเบชเบฐเปเบเบฒเบฐ, เบกเบฑเบเบชเบฒเบกเบฒเบเบเบฑเบเปเบเปเบเบฑเบเบเบถเปเบเปเบฅเบฐเบฅเบปเบ). เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฑเบเบชเบญเบเปเบฎเบฑเบเบงเบฝเบเปเบเบปเปเบฒเบเบฝเบกเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบญเบฑเบเบเบตเบชเบญเบเบเบตเปเบเบธเบเบเบฒเบเบเบงเปเบฒ, เปเบเบทเปเบญเบเปเปเปเบซเปเปเบเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเปเบกเบตเบขเบนเปเบเปเบญเบเบเบฑเปเบเปเบเบเบเบฑเบเปเบญเบตเบ. เบเบฑเบเบซเบฒเบเบฒเบเบขเปเบฒเบเปเบกเปเบเบงเปเบฒเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ PWM เบเบญเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบฑเบเบซเบกเบปเบเปเบเบเบนเปเบกเบทเบเบฒเบเบญเปเบฒเบเบญเบดเบเปเบกเปเบเบขเบนเปเปเบเบเบปเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเบเปเบงเบฅเบฒเบเปเบฒเบญเบดเบ (17.5.7 PWM Mode), เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบเบเปเบญเบเบเบฐเปเบเบเบเบฑเบเบเบทเบเปเบเบเบปเปเบงเปเบญเบเบฐเบชเบฒเบเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ.
PWM เปเบ STM8 เบกเบตเบเบฐเปเบซเบเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบงเปเบฒ PWM เปเบ Atmega:
PWM เบชเบญเบเบเปเบญเบเบเบฒเบกเบเบฒเบเปเบเบ
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฑเบเบเบตเบเบฒเบเบฅเบธเปเบกเบซเบฒเปเบเบดเบ
เบเบฒเบเบเบฑเบเบเบฑเปเบเบฅเบธเปเบกเปเบกเปเบเปเบเปเปเบเปเบเปเบฒเบเบดเบ DIR เปเบเบเบฐเบเบฝเบ TIM_CR1 เบเบทเบเบฅเบถเบเบฅเปเบฒเบ
เบเบปเบงเบขเปเบฒเบ:
เบเบปเบงเบขเปเบฒเบเปเบเปเปเบซเบกเบ PWM เบเปเบฒเบญเบดเบ. เบชเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ PWM OCiREF เปเบกเปเบเบเบทเบชเบนเบเปเบเบฑเบ TIM1_CNT < TIM1_CCRi. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบเบกเบฑเบเปเบเปเปเบงเบฅเบฒเปเบเบฅเบฐเบเบฑเบเบเปเปเบฒ. เบเปเบฒเบเปเบฒเบเบฝเบเบเบฝเบเบขเบนเปเปเบเบเบฐเบเบฝเบ TIM1_CCRi เปเบกเปเบเปเบซเบเปเบเบงเปเบฒเบเปเบฒ autoload (เบฅเบปเบเบเบฐเบเบฝเบ TIM1_ARR), เบชเบฑเบเบเบฒเบ OCiREF เปเบกเปเบเบเบทเบขเบนเปเบเบตเป 1. เบเปเบฒเบเปเบฒเบเบฝเบเบเบฝเบเปเบกเปเบ 0, OCiREF เบเบทเบเบเบฑเบเบขเบนเปเบเบตเปเบชเบนเบ....
เปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒ STM8 เปเบเบฅเบฐเบซเบงเปเบฒเบ เบญเบฑเบเปเบเบเปเบซเบเบเบฒเบ เบเบงเบเปเบเบดเปเบเบเปเบญเบ เบเบฝเบเบเบฝเบเบกเบนเบเบเปเบฒ, เปเบฅเบฐเบเบฝเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฐเบฅเบดเบเบชเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ. เบเบปเบงเบเบฑเบเปเบงเบฅเบฒเบเบญเบ Atmega เบเปเบฒเบญเบดเบ screws เบเบถเปเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฝเบเบเบฝเบ, เบเบปเบเปเบเปเบฎเบฑเบ compare value == 0
เบเบปเบเบเบฐเบฅเบดเบเปเบกเปเบเปเบเบฑเบก, เปเบเบดเปเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบ somehow (เบเบปเบงเบขเปเบฒเบ, เปเบเบ programmatically inverting เบเบฒเบกเปเบซเบเบเบปเบ).
เบเบฑเปเบเบเบฑเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบฎเบฑเบ: 8-bit PWM (AR == 255
), เบเบฑเบเบเบฒเบเบฅเบธเปเบกเบซเบฒเปเบเบดเบ, เบเบฒเบเบเบฑเบเบฅเบฝเบเบเบฒเบกเบเบฒเบเปเบเบ. เปเบเบทเปเบญเบเบเบฒเบเบซเบฅเบญเบเปเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบดเบเปเบเบ cathodes, PWM เบเบงเบเบญเบญเบ 0 (LED เปเบเบตเบ) เบเบปเบเบเปเบงเบฒ. เบเบฝเบเบเบฝเบเบกเบนเบเบเปเบฒ เปเบฅเบฐ 1 เบซเบผเบฑเบ.
เบเบงเบเปเบฎเบปเบฒเปเบเปเบญเปเบฒเบเปเบฅเปเบงเบเปเบฝเบงเบเบฑเบเบเบฒเบ เบฎเบนเบเปเบเบ PWM, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบ timer เบเบตเบชเบญเบเปเบเบเบเบฒเบเบเบปเปเบเบซเบฒเปเบเบเบนเปเบกเบทเบเบฒเบเบญเปเบฒเบเบญเบดเบเบชเปเบฒเบฅเบฑเบเบเบฐเปเบซเบเบเบเบตเป (18.6.8 - TIMx_CCMR1):
110: เปเปเบ PWM เบเบณเบญเบดเบ โ เปเบกเบทเปเบญเบเบฑเบเบเบฒเบเบฅเบธเปเบกเบเบถเปเบเปเบเบดเบ, เบเปเบญเบเบเบณเบญเบดเบเบเบฐเปเบเบตเบเปเบเปเปเบเบเบฐเบเบฐเบเบตเป TIMx_CNT < TIMx_CCR1. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเปเบญเบเบเปเบฒเบญเบดเบเปเบกเปเบเบเปเปเปเบเบทเปเบญเบเปเบซเบง. [เปเบเบตเปเบกเปเบเบตเบกเปเบเปเบญเบเบฐเบชเบฒเบเบกเบตเบเบฒเบเบเบฑเบเบฅเบญเบเบเบตเปเบเบดเบเบเบฒเบเบเบฒเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒ 1] 111: เปเบซเบกเบ PWM เบเบตเบชเบญเบ - เปเบกเบทเปเบญเบเบฑเบเบเบฒเบเบฅเบธเปเบกเบเบถเปเบเปเบเบดเบ, เบเปเบญเบเบเปเบฒเบญเบดเบเบเปเปเปเบเบทเปเบญเบเปเบซเบงเปเบเบเบฐเบเบฐเบเบตเป TIMx_CNT < TIMx_CCR1. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบเปเบญเบเบเปเบฒเบญเบดเบเปเบกเปเบเปเบฎเบฑเบเบงเบฝเบ.
เปเบเบทเปเบญเบเบเบฒเบ LEDs เปเบเบทเปเบญเบกเบเปเปเบเบฑเบ MK เปเบเบ cathodes, เบฎเบนเบเปเบเบเบเบตเบชเบญเบเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบเบงเบเปเบฎเบปเบฒ (เบญเบฑเบเบเปเบฒเบญเบดเบเบเบทเบเบฑเบ, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเบฎเบนเป).
Bit 3 OC1PE: เปเบเบตเบเปเบเป pin 1 preload
0: Preload register on TIMx_CCR1 is disabled. เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเปเบชเป TIMx_CCR1 เปเบเปเบเบธเบเปเบงเบฅเบฒ. เบกเบนเบเบเปเบฒเปเบซเบกเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบต.
1: Preload register on TIMx_CCR1 is enabled. เบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบญเปเบฒเบ / เบเบฝเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบ preload เปเบเปโ. เบเปเบฒ TIMx_CCR1 เบเบตเปเปเบซเบผเบเบกเบฒเบฅเปเบงเบเปเปเบฒเบเบฐเบเบทเบเปเบซเบผเบเปเบชเปเปเบเบเบฐเบเบฝเบเปเบเบปเบฒเปเบเบฅเบฐเบซเบงเปเบฒเบเปเบเปเบฅเบฐเปเบซเบเบเบฒเบเบญเบฑเบเปเบเบ.
*เปเบฒเบเปเบซเบ: เปเบเบทเปเบญเปเบซเปเปเบซเบกเบ PWM เปเบฎเบฑเบเบงเบฝเบเปเบเปเบขเปเบฒเบเบเบทเบเบเปเบญเบ, เบเปเบญเบเปเบเบตเบเปเบเปเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบฅเปเบงเบเปเปเบฒ. เบเบตเปเบเปเปเปเบกเปเบเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเปเบเปเบซเบกเบเบชเบฑเบเบเบฒเบเบเบฝเบง (เบเบดเบ OPM เบเบทเบเบเปเบฒเบเบปเบเบขเบนเปเปเบเบเบฐเบเบฝเบ TIMx_CR1).
เบเบปเบเบฅเบปเบ, เปเบซเปเปเบเบตเบเบเบธเบเบขเปเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบชเบฒเบกเบเปเบญเบเบเบญเบเปเบกเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบ:
#define TIM2_CCMR1 *(volatile uint8_t *)0x005307
#define TIM2_CCMR2 *(volatile uint8_t *)0x005308
#define TIM2_CCMR3 *(volatile uint8_t *)0x005309
#define PWM_MODE2 0x70 //PWM mode 2, 0b01110000
#define OCxPE 0x08 //preload enable
TIM2_CCMR1 = (PWM_MODE2 | OCxPE);
TIM2_CCMR2 = (PWM_MODE2 | OCxPE);
TIM2_CCMR3 = (PWM_MODE2 | OCxPE);
AR เบเบฐเบเบญเบเบเปเบงเบเบชเบญเบเบเบฐเบเบฝเบเปเบเบเบเบดเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ:
#define TIM2_ARRH *(volatile uint8_t *)0x00530F
#define TIM2_ARRL *(volatile uint8_t *)0x005310
TIM2_ARRH = 0;
TIM2_ARRL = 255;
เปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบฅเบธเปเบกเบซเบฒเปเบเบดเบ, เบเบฒเบเบเบฑเบเบเปเบฒเปเบซเบเปเบเบเบฒเบกเบเบฒเบเปเบเบ, เบเปเปเบกเบตเบซเบเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ. เปเบซเปเบเปเบฒเบเบปเบเบเบปเบงเปเบเปเบเบเบงเบฒเบกเบเบตเป, เบเบปเบงเบขเปเบฒเบ, เปเบเบฑเบ 256. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบ, เบเบปเบงเปเบเปเบเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบเบเบฐเบเบฝเบ TIM2_PSCR เปเบฅเบฐเปเบเบฑเบเบเบฐเบฅเบฑเบเบเบฒเบเบเบญเบเบชเบญเบ:
#define TIM2_PSCR *(volatile uint8_t *)0x00530E
TIM2_PSCR = 8;
เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเปเบเบตเบเบเบฒเบเบชเบฐเบซเบฅเบธเบเปเบฅเบฐเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเบเบญเบเบกเบฑเบเปเบญเบ. เบเบฑเบเบซเบฒเบเปเบฒเบญเบดเบเบเบทเบเปเบเปเปเบเปเบเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ เบเบฑเบเบเบถเบ/เบเบฝเบเบเบฝเบ เปเบเบตเบเบเปเบฒเปเบเป: เบกเบตเบชเบญเบ, เบชเบฒเบกเบเปเบญเบเบเบฐเปเบเบเบเบฐเบเบฒเบเปเบเบเบปเปเบงเบเบงเบเบกเบฑเบเบเปเปเบชเบปเบกเบกเบฒเบ. เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเบฎเบฝเบเบฎเบนเปเบงเปเบฒเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ polarity เบเบญเบเบชเบฑเบเบเบฒเบ, i.e. เปเบเบซเบผเบฑเบเบเบฒเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเป PWM Mode 1. เบเบงเบเปเบฎเบปเบฒเบเบฝเบเบงเปเบฒ:
#define TIM2_CCER1 *(volatile uint8_t *)0x00530A
#define TIM2_CCER2 *(volatile uint8_t *)0x00530B
#define CC1E (1<<0) // CCER1
#define CC2E (1<<4) // CCER1
#define CC3E (1<<0) // CCER2
TIM2_CCER1 = (CC1E | CC2E);
TIM2_CCER2 = CC3E;
เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบฑเบเปเบงเบฅเบฒเปเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ TIMx_CR1:
#define TIM2_CR1 *(volatile uint8_t *)0x005300
TIM2_CR1 |= 1;
เปเบซเปเปเบฎเบปเบฒเบเบฝเบเปเบเบเบเปเบฒเบเปเบเบญเบ AnalogWrite(), เปเบเบดเปเบเบเบฐเปเบญเบเบเปเบฒเบเบปเบงเบเบดเบเปเบซเปเบเบฑเบ timer เบชเบณเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ. เบเบฐเบเบฝเบเบกเบตเบเบทเปเบเบตเปเบเบฒเบเปเบเบปเบฒเปเบเป เบเบฑเบเบเบถเบ/เบเบฝเบเบเบฝเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ, เบกเบตเบชเบญเบเบญเบฑเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบญเบ: เบเปเบฒเบชเบฑเปเบเบเปเปเบฒ 8 เบเบดเบเปเบ TIM2_CCRxL เปเบฅเบฐเบญเบฑเบเบเบตเปเบกเบตเบเปเบฒเบชเบฑเปเบเบชเบนเบเปเบ TIM2_CCRxH. เปเบเบทเปเบญเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเบ PWM 8-bit, เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเบเบฝเบเบเบฝเบเปเบเป bits เบซเบเปเบญเบเบเบตเปเบชเบธเบ:
#define TIM2_CCR1L *(volatile uint8_t *)0x005312
#define TIM2_CCR2L *(volatile uint8_t *)0x005314
#define TIM2_CCR3L *(volatile uint8_t *)0x005316
void setRGBled(uint8_t r, uint8_t g, uint8_t b)
{
TIM2_CCR1L = r;
TIM2_CCR2L = g;
TIM2_CCR3L = b;
}
เบเบนเปเบญเปเบฒเบเบเบตเปเปเบญเบปเบฒเปเบเปเบชเปเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบต PWM เบเบตเปเบกเบตเบเบงเบฒเบกเบเบปเบเบเปเบญเบเปเบฅเบฑเบเบเปเบญเบ, เบเปเปเบชเบฒเบกเบฒเบเบเบฐเบฅเบดเบเบเบฒเบเบเบทเปเบก 100% (เปเบเบกเบนเบเบเปเบฒเบชเบนเบเบชเบธเบเบเบญเบ 255, เบชเบฑเบเบเบฒเบเปเบกเปเบ inverted เบชเปเบฒเบฅเบฑเบเบงเบปเบเบเบญเบ timer เบซเบเบถเปเบ). เบชเปเบฒเบฅเบฑเบ LEDs เบเบตเปเบเปเปเบชเปเบฒเบเบฑเบ, เปเบฅเบฐเบเบนเปเบญเปเบฒเบเบเบตเปเปเบญเบปเบฒเปเบเปเบชเปเบชเบฒเบกเบฒเบเบเบฒเบเปเบเบปเบฒเปเบเปเบงเปเบฒเบเบฐเปเบเปเปเบเบกเบฑเบเปเบเปเปเบเบงเปเบ.
PWM เปเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเปเบฎเบฑเบเบงเบฝเบ, เปเบซเปเปเบฎเบปเบฒเบเปเบฒเบงเปเบเบชเบนเปเบเบปเบงเบเปเบฒเบญเบดเบ.
เปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเปเบฒเบญเบดเบเบกเบตเบเบดเบเบเบฝเบงเบเบฑเบเบขเบนเปเปเบเบเบฐเบเบฝเบเบเบฝเบงเบเบฑเบ (เบกเบฑเบเบเบฝเบเปเบเปเบงเปเบฒเบเบดเบเบเบตเปเบเบฑเบเบเบปเบ "เบชเบฐเบซเบเบงเบ" เบขเบนเปเปเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเปเบกเปเบเบเบทเบเบเปเบฒเปเบเปเบขเปเบฒเบเบซเปเบฒเบงเบซเบฑเบเปเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเปเบเบเบเบญเบเบชเบดเปเบเบเปเบฒเบงเบซเบเปเบฒ). เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเบเบญเบเบซเบฒเบเบตเปเบขเบนเปเบเบญเบเบเบฐเบเบฝเบเบเบฝเบงเบเบฑเบเปเบเปเบญเบเบฐเบชเบฒเบเบเปเปเบกเบนเบเปเบฅเบฐเบเบฑเบเบฅเบญเบเบฅเบฐเบซเบฑเบ. เปเบฅเปเบง, เบเปเบฝเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเปเบเบเบงเบฒเบกเบเบตเป, เปเบเบฒเบฐเบงเปเบฒ... เบเบปเบงเบเบฑเบเปเบงเบฅเบฒเบเปเบฒเบญเบดเบเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเปเปเปเบกเปเบเบเบฐเบฅเบฑเบเบเบฒเบเบเบญเบเบชเบญเบ, เปเบเปเบกเบนเบเบเปเบฒ 16-bit เบเบตเปเปเบเปเบเบญเบเปเบเบชเบญเบเบเบฐเบเบฝเบ Prescaler เบชเบนเบ ะธ เบเปเปเบฒ. เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบฅเบฐ ... timer เบเปเบฒเบญเบดเบเบเปเปเปเบเปเปเบฎเบฑเบเบงเบฝเบ. เปเบกเปเบเบซเบเบฑเบ?
เบเบฑเบเบซเบฒเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเบเบฒเบเปเบเบดเปเบเบเปเบฒเบเบเบฒเบเบชเปเบงเบเบเบฑเบเบซเบกเบปเบเบเปเบฝเบงเบเบฑเบเบเบฑเบเบเบถเบเบเบฒเบเบเบงเบเบเบธเบกเบเบญเบ timer 1, เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒเบซเบเบถเปเบเบเบตเป timer เบเบตเบชเบญเบเบเปเปเบกเบต. เบเบฐโเบกเบต 17.7.30 เบฅเบปเบเบเบฐเบเบฝเบเบเบฑเบเบเปเบญเบ (TIM1_BKR), เบเปเบญเบเบเบตเปเบกเบต bit เบเบตเป:
เปเบเบตเบเปเบเปเบเบปเบเบเบฐเบฅเบดเบเบเบปเปเบเบเป
#define TIM1_BKR *(volatile uint8_t *)0x00526D
TIM1_BKR = (1<<7);
เบเบฑเปเบเปเบกเปเบเบเบฑเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเปเบเปเบเบญเบเปเบเบเบฑเบเบเบธเบเบฑเบ, เบฅเบฐเบซเบฑเบ
STM8 Multiplex
Multiplexing เปเบ STM8
เปเบเบเบเบฒเบ mini เบเบตเบชเบฒเบกเปเบกเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบ RGB LEDs เบเบฑเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเปเบเปเบซเบกเบ PWM เปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบเบงเบเบกเบฑเบเบชเบฐเปเบเบเบชเบตเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ. เบกเบฑเบเปเบกเปเบเบญเบตเบเปเบชเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบ LED multiplexing, เปเบเบดเปเบเปเบกเปเบเบงเปเบฒเบเปเบฒเบเปเบฒเบเปเบเบตเบเปเบฅเบฐเบเบดเบ LEDs เบซเบผเบฒเบ, เปเบง, เบกเบฑเบเบเบฐเปเบเบดเปเบเบเบทเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบขเบนเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ (เบเบงเบฒเบกเบเบปเบเบเบปเบเบเบญเบเบงเบดเปเบชเบเบฑเบ, inertia เบเบญเบเบเบฒเบเบฎเบฑเบเบฎเบนเปเบชเบฒเบเบเบฒ). เบเปเบญเบเปเบเบตเบเปเบฎเบฑเบ
เบเบฑเปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบดเปเบเบเบทเบงเปเบฒ:
- เปเบเบทเปเบญเบกเบเปเป anode เบเบญเบ RGB LED เบเปเบฒเบญเบดเบ;
- lit เบกเบฑเบ, เบชเบปเปเบเบชเบฑเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเบเบฑเบ cathodes;
- เบฅเปเบเปเบฒเบเบปเบเบเปเบงเบฒเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบงเบปเบเบเบญเบ PWM;
- เปเบเบทเปเบญเบกเบเปเป anode เบเบญเบ LED RGB เบเบตเบชเบญเบ;
- เบเบนเบเบกเบฑเบ...
เบเบต, เปเบฅเบฐเบญเบทเปเบเป. เปเบเปเบเบญเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเปเบชเบงเบเบเบฒเบก, เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบทเปเบญเบกเบเปเป anode เปเบฅเบฐ LED เปเบกเปเบ "เปเบ" เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ. เบเบต, เบซเบผเบทเปเบเบทเบญเบ. เปเบเบเปเบฅเบฐเบเบตเปเบเบเปเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฝเบเบฅเบฐเบซเบฑเบเบเบตเปเบเบฐเบชเบปเปเบเบเปเบฒเปเบเบชเบฒเบกเบเปเบญเบเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบ, เบเปเบฝเบเบเบงเบเบกเบฑเบเปเบกเบทเปเบญ UEV เบกเบฒเบฎเบญเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบเปเบฝเบ RGB LED เบเบตเปเปเบเปเปเบเบเบฑเบเบเบธเบเบฑเบ.
เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบชเบฐเบซเบผเบฑเบ LED เปเบกเปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบ "เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบงเบดเบเบตเปเบญ" เบเบตเปเบเบปเบงเบเบฑเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบ. เบเบตเปเปเบกเปเบ array เบเปเบฒเบเบเบฒเบ:
uint8_t colors[8][3];
เปเบเบทเปเบญเบเปเบฝเบเบชเบตเบเบญเบ LED เบชเบฐเปเบเบฒเบฐ, เบกเบฑเบเบเบฐเบเบฝเบเบเปเบเบตเปเบเบฐเบเบฝเบเบเปเบฒเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเปเบ array เบเบตเป. เปเบฅเบฐเบเบปเบงเปเบเบเบฐเบฎเบฑเบเบเบดเบเบเบญเบเบเปเปเบเปเบฒเบเบงเบเบเบญเบ LED เบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบง
uint8_t cnt;
Demux
เบชเปเบฒเบฅเบฑเบเบเบฒเบ multiplexing เบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ, oddly เบเบฝเบเบเป, CD74HC238 demultiplexer. Demultiplexer - เบเบดเบเบเบตเปเบเบฐเบเบดเบเบฑเบเบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบเปเบเบฎเบฒเบเปเบง <<
. เปเบเบเบเปเบฒเบเบชเบฒเบก pins input (bits 0, 1 เปเบฅเบฐ 2) เบเบงเบเปเบฎเบปเบฒเปเบซเปเบญเบฒเบซเบฒเบเบกเบฑเบเบเปเบฒเบเบงเบเบชเบฒเบกเบเบดเบ X, เปเบฅเบฐเปเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบกเบฑเบเปเบเบตเบเปเบเปเบเปเบฒเบเบงเบเบเบปเบเบเบฐเบฅเบดเบ (1<<X
). เบงเบฑเบเบชเบฐเบเบธเบเปเบญเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเบเบญเบเบเบดเบเปเบกเปเบเปเบเปเปเบเบทเปเบญเบเบฑเบเบเบฐเปเบฒเบเบเบฒเบเบญเบญเบเปเบเบเบเบฑเบเปเบปเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบดเบเบเบตเปเบเปเปเบเบฝเบเปเบเปเบซเบผเบธเบเบเปเบญเบเบเปเบฒเบเบงเบเบเบญเบ pins เบเบญเบเบเบญเบเบเบญเบ microcontroller เปเบเป, เปเบเปเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบ - เปเบเบทเปเบญเบเปเปเปเบซเปเบญเบธเบเบฑเบเบเบดเปเบซเบเปเบเบตเบเปเบ LEDs เบซเบผเบฒเบเบเปเบงเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบฅเบฐเบเปเปเปเบซเบกเป MK เปเบเป. เบเบดเบเบกเบตเบฅเบฒเบเบฒเปเบเบฑเบเปเบเบดเบ เปเบฅเบฐเบเบงเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบงเปเปเบเบเบนเปเบขเบฒเบขเบนเปเปเบฎเบทเบญเบเบเบญเบเบเปเบฒเบเบชเบฐเปเปเบต.
CD74HC238 เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบชเบฐเบซเบเบญเบเปเบฎเบเบเบฑเบเปเบซเป anode เบเบญเบ LED เบเบตเปเบเปเบญเบเบเบฒเบ. เปเบ multiplex เปเบเบฑเบกเบฎเบนเบเปเบเบ, เบกเบฑเบเบเบฐเบชเบฐเบซเบเบญเบเปเบฎเบเบเบฑเบเปเบซเปเบเบฑเบเบเปเบฒเบ P-MOSFET, เปเบเปเปเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเปเบเบเบเบปเบ, เปเบเบฒเบฐเบงเปเบฒ. เบกเบฑเบเปเบเปเบก 20 mA, เบญเบตเบเบเบฒเบก เบเบฐเปเบเบเบชเบนเบเบชเบธเบเบขเปเบฒเบเปเบเปเบเบดเบ เบขเบนเปเปเบเปเบเปเบเบเปเปเบกเบนเบ. เบเบฒเบ
H = เบฅเบฐเบเบฑเบเปเบฎเบเบเบฑเบเบชเบนเบ, L = เบฅเบฐเบเบฑเบเปเบฎเบเบเบฑเบเบเปเปเบฒ, X โ เบเปเปเบชเบปเบเปเบ
เบเบงเบเปเบฎเบปเบฒเปเบเบทเปเบญเบกเบเปเป E2 เปเบฅเบฐ E1 เบเบฑเบเบเบดเบ, E3, A0, A1 เปเบฅเบฐ A3 เบเบฑเบ pins PD5, PC3, PC4 เปเบฅเบฐ PC5 เบเบญเบ STM8. เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเปเบฒเบเปเบเบดเบเบกเบตเบเบฑเบเบฅเบฐเบเบฑเบเบเปเปเบฒ เปเบฅเบฐเบฅเบฐเบเบฑเบเบชเบนเบ, เบเบงเบเปเบฎเบปเบฒเบเบณเบเบปเบเบเปเบฒ pins เปเบซเบผเบปเปเบฒเบเบตเปเปเบเบฑเบ pins push-pull.
PWM
PWM เปเบเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเบเบตเบชเบญเบเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเบฅเบฑเบเบชเบฐเบเบฐเบเบฝเบงเบเบฑเบเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบกเบตเบชเบญเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบ:
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเบงเบเปเบฎเบปเบฒ เบเบณ เปเบเบฑเบเบเปเบญเบเปเบเบตเบเปเบเปเบเบฒเบเบเบฑเบเบเบงเบฒเบ เบญเบฑเบเปเบเบเปเบซเบเบเบฒเบ (UEV) เปเบเบดเปเบเบเบฐเปเบญเบตเปเบเบเบฑเบเบเบฑเบเบเบตเปเบชเบฐเบซเบผเบฑเบ LED เบเบตเปเปเบเปเบงเบฝเบ. เบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเปเบเบเบเบฒเบเบเปเบฝเบเบเบดเบ เบญเบฑเบเปเบเบ Interrupt เปเบเบตเบเปเบเปเบเบฒเบ เปเบเบเบฐเบเบฝเบเบเบตเปเบกเบตเบเบทเปเบเบญเบ
เบเบฑเบเบเบงเบฒเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ
#define TIM2_IER *(volatile uint8_t *)0x005303
//enable interrupt
TIM2_IER = 1;
เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบตเปเบชเบญเบเปเบกเปเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฐเบเบปเบเบเบฒเบ multiplexing, เปเบเบฑเปเบ: เบเบต - เบเบฒเบเบฒเบเบเบญเบ diodes. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบกเบฑเบเบญเบฒเบเบเบฐเบเบฒเบเบปเบเบเปเบญเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒ, เปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบ UEV, เบชเบทเบเบเปเปเบซเบกเบฒเบเบเบดเบ, เปเบฅเบฐเบเบปเบงเบเบฑเบเบเบฑเบเบเบงเบฒเบเบเปเปเบกเบตเปเบงเบฅเบฒเบเบตเปเบเบฐเบเปเบฝเบเปเบ LED เบเปเบญเบเบเบตเปเปเบเบทเปเบญเบเบเบฑเบเปเบงเบฅเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฝเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบชเป pins. เปเบเบทเปเบญเบเปเบฒเบเบเบฒเบเบเบตเป, เบเปเบฒเบเบเบฐเบเปเบญเบ invert เบเบฒเบกเปเบซเบเบเบปเบ (0 = เบเบงเบฒเบกเบชเบฐเบซเบงเปเบฒเบเบชเบนเบเบชเบธเบ, 255 = เบเปเปเบกเบตเบซเบเบฑเบเปเบเบฑเบเปเบ) เปเบฅเบฐเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเปเบฒเบงเบปเบเบเบญเบเบซเบเปเบฒเบเบตเปเบฎเปเบฒเบเปเบฎเบ. เปเบซเบผเบปเปเบฒเบเบฑเปเบ. เปเบซเปเปเบเปเปเบเบงเปเบฒเบซเบผเบฑเบเบเบฒเบ UEV, LEDs เบญเบญเบเปเบเบซเบกเบปเบเบชเปเบฒเบฅเบฑเบเบงเบปเบเบเบญเบ PWM.
เบเบฒเบโเบเปเบฝเบโเปเบเบ Polarityโ:
//set polarity
TIM2_CCER1 |= (CC1P | CC2P);
TIM2_CCER2 |= CC3P;
เบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบฑเปเบ r, g เปเบฅเบฐ b เปเบเบฑเบ 255 เปเบฅเบฐเบเบทเปเบเปเบฒเบเบตเปเบเบฐเบเปเบฝเบเบเบงเบเบกเบฑเบเปเบกเบทเปเบญเปเบเปเบเบงเบเบกเบฑเบ.
เบเบฑเบเบเบงเบฒเบ
เปเบเบเปเบเบทเปเบญเปเบเปเปเบฅเปเบงเบเบญเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเปเบชเบฐเบเบฒเบเบฐเบเบฒเบเบชเบฐเปเบเบฒเบฐเปเบเบซเบเบถเปเบ chip เบขเบธเบเปเบเบปเบฒเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบเบฒเบเบเบปเปเบเบเปเปเบฅเบฐเปเบเบซเบฒเบเบฒเบเบซเบเปเบฒเบเบตเปเบเบฒเบเบเบญเบ. เบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบเบตเบเบเบทเปเบเบเปเบญเบเบญเบดเบเบเบดเบเบปเบเบเบฒเบเบเบญเบเบซเบผเบทเบเบฒเบเปเบ, เบฅเบงเบกเบเบฑเบเบเบปเบงเบเบฑเบเปเบงเบฅเบฒ.
เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบเบเบฒเบเบเปเบฒเบญเบดเบเปเบ ST Visual Develop, เบเบญเบเปเบซเบเบทเบญเบเบฒเบ main.c
เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเปเบญเบเบขเปเบฝเบกเบเบตเปเบกเบตเปเบเบฅเปเบฅเบถเบเบฅเบฑเบ stm8_interrupt_vector.c
, เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบฅเบงเบกเบขเบนเปเปเบเปเบเบเบเบฒเบ. เปเบเปเบเบฅเปเบเบตเป, เบซเบเปเบฒเบเบตเปเบเบทเบเบกเบญเบเบซเบกเบฒเบเปเบซเปเปเบเปเบฅเบฐเบเบฑเบเบเบงเบฒเบ NonHandledInterrupt
. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบนเบเบกเบฑเบเบซเบเปเบฒเบเบตเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบ.
เปเบเปเบเบเปเปเบกเบนเบเบกเบตเบเบฒเบเบฐเบฅเบฒเบเบเบญเบ vectors เบเบฑเบเบเบงเบฒเบ, เบเปเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒเบญเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ:
13 TIM2 เบญเบฑเบเปเบเบ/เบฅเบปเปเบ
14 TIM2 เบเบฑเบ/เบชเบปเบกเบเบฝเบ
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฝเบเปเบ LED เบขเบนเป UEV, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฑเบเบเบงเบฒเบ #13.
เบเบฑเปเบเบเบฑเปเบ, เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เปเบเปเบญเบเบฐเบชเบฒเบ stm8_interrupt_vector.c
เบเปเบฝเบเบเบทเปเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบฑเบเบเบฑเบเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเบเปเปเบเบฒเบเบเบฑเบเบเบงเบฒเบเบชเบฐเบเบฑเบเปเบฅเบเบเบต 13 (IRQ13) เปเบเบฑเบเบเบญเบเบเบปเบเปเบญเบ:
{0x82, TIM2_Overflow}, /* irq13 */
เบญเบฑเบเบเบตเบชเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบชเปเบฒเบเปเบเบฅเป main.h
เปเบเบโเบกเบตโเปเบเบทเปเบญโเปเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
#ifndef __MAIN_H
#define __MAIN_H
@far @interrupt void TIM2_Overflow (void);
#endif
เปเบฅเบฐเบชเบธเบเบเปเบฒเบ, เบเบฝเบเบซเบเปเบฒเบเบตเปเบเบตเปเบขเบนเปเปเบเบเบญเบเปเบเบปเปเบฒ main.c
:
@far @interrupt void TIM2_Overflow (void)
{
PD_ODR &= ~(1<<5); // ะฒัััะฑะฐะตะผ ะดะตะผัะปััะธะฟะปะตะบัะพั
PC_ODR = (cnt<<3); // ะทะฐะฟะธััะฒะฐะตะผ ะฒ ะดะตะผัะปััะธะฟะปะตะบัะพั ะฝะพะฒะพะต ะทะฝะฐัะตะฝะธะต
PD_ODR |= (1<<5); // ะฒะบะปััะฐะตะผ ะดะตะผัะปััะธะฟะปะตะบัะพั
TIM2_SR1 = 0; // ัะฑัะฐััะฒะฐะตะผ ัะปะฐะณ Update Interrupt Pending
cnt++;
cnt &= 7; // ะดะฒะธะณะฐะตะผ ััะตััะธะบ LED
TIM2_CCR1L = ~colors[cnt][0]; // ะฟะตัะตะดะฐะตะผ ะฒ ะฑััะตั ะธะฝะฒะตััะธัะพะฒะฐะฝะฝัะต ะทะฝะฐัะตะฝะธั
TIM2_CCR2L = ~colors[cnt][1]; // ะดะปั ัะปะตะดัััะตะณะพ ัะธะบะปะฐ ะจะะ
TIM2_CCR3L = ~colors[cnt][2]; //
return;
}
เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเปเบเบตเบเปเบเปเบเบฒเบเบเบฑเบเบเบงเบฒเบ. เบเบตเปเปเบกเปเบเปเบฎเบฑเบเปเบเปเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ assembler rim
- เบเปเบฒเบเบเบฐเบเปเบญเบเบเบญเบเบซเบฒเบกเบฑเบเบขเบนเปเปเบ
//enable interrupts
_asm("rim");
เบเปเบฒเบชเบฑเปเบเบเบฐเบเบญเบเบญเบทเปเบเปเบกเปเบ sim
- เบเบดเบโเบเบฒเบโเบเบฑเบโเบเบงเบฒเบโ. เบเบงเบเบกเบฑเบเบเปเบญเบเบเบทเบเบเบดเบเปเบเบเบฐเบเบฐเบเบตเปเบเปเบฒเปเบซเบกเปเบเบทเบเบเบฝเบเปเบชเป "เบเบงเบฒเบกเบเบปเบเบเปเบฒเบงเบดเบเบตเปเบญ", เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเบเบตเปเปเบเบตเบเบเบทเปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบดเบเบเบฒเบเบเบฐเบเปเปเบเปเบฒเบฅเบฒเบเบญเบฒเปเบฃ.
เบฅเบฐโเบซเบฑเบโเบเบฑเบโเบซเบกเบปเบ -
เบเปเบฒเบขเปเบฒเบ เปเปเบญเบ เบเบนเปเปเบเบเบนเป เปเบถเปเบ เปเบซเบฑเบเบงเปเบฒเบเบปเบเบเบงเบฒเบกเบเบตเปเบกเบตเบเบฐเปเบซเบเบ, เบเปเบญเบเบเปเปเปเบเปเบเบฝเบเบกเบฑเบเปเบเบเบเปเปเบกเบตเบเบฐเปเบซเบเบ. เบเปเบญเบเบเบฐเบเบตเปเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเปเบฒเบเบดเบเปเบซเบฑเบเปเบฅเบฐเบเปเปเบชเบฑเบเปเบเบ, เบเปเบญเบเบเบฐเบเบฐเบเบฒเบเบฒเบกเบเบญเบเบเบธเบเบขเปเบฒเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com