เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

ะ’ เชชเซเชฐเชฅเชฎ เชญเชพเช— เชฎเซ‡เช‚ เชถเซ‹เช–เชจเชพ เชˆเชฒเซ‡เช•เซเชŸเซเชฐเซ‹เชจเชฟเช•เซเชธ เชˆเชœเชจเซ‡เชฐเซ‹เชจเซ‡ เช•เชนเซ‡เชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เช•เซ‡ เชœเซ‡เช“ Arduino เชชเซ‡เชจเซเชŸเชฎเชพเช‚เชฅเซ€ เช‰เช›เชฐเซเชฏเชพ เช›เซ‡ เชคเซ‡เช“เช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชˆเช•เซเชฐเซ‹เช•เชจเซเชŸเซเชฐเซ‹เชฒเชฐ เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ เช…เชจเซ‡ เช…เชจเซเชฏ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชตเชพเช‚เชšเชตเชพ เชœเซ‹เชˆเช. เชŸเซ‡เช•เซเชธเซเชŸ เชฎเซ‹เชŸเซ‹ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚, เชคเซ‡เชฅเซ€ เชฎเซ‡เช‚ เชเช• เช…เชฒเช— เชฒเซ‡เช–เชฎเชพเช‚ เชตเซเชฏเชตเชนเชพเชฐเซ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชฌเชคเชพเชตเชตเชพเชจเซเช‚ เชตเชšเชจ เช†เชชเซเชฏเซเช‚. เชธเชพเชฐเซเช‚, เชคเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เชฆเซ‚เชง เชฎเชถเชฐเซ‚เชฎ เช•เชนเซ‡ เช›เซ‡ ...

เช†เชœเซ‡ เชนเซเช‚ เชคเชฎเชจเซ‡ เชฌเชคเชพเชตเซ€เชถ เช•เซ‡ STM32 (Blue Pill) เช…เชจเซ‡ STM8 เชจเชฟเชฏเช‚เชคเซเชฐเช•เซ‹ เชชเชฐเชจเชพ เช˜เชฃเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ, เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชเช•เชฆเชฎ เชธเชฐเชณ, เชชเชฐเช‚เชคเซ เชœเชฐเซ‚เชฐเซ€ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹. เชฌเชงเชพ เชกเซ‡เชฎเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชฎเชพเชฐเชพ เชฎเชจเชชเชธเช‚เชฆ LED เชจเซ‡ เชธเชฎเชฐเซเชชเชฟเชค เช›เซ‡, เช…เชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฎเซ‹เชŸเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€เชถเซเช‚, เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ‡ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ เชฐเชธเชชเซเชฐเชฆ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡.

เชŸเซ‡เช•เซเชธเซเชŸ เชซเชฐเซ€เชฅเซ€ เชตเชฟเชถเชพเชณ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚, เชคเซ‡เชฅเซ€ เช…เชจเซเช•เซ‚เชณเชคเชพ เชฎเชพเชŸเซ‡ เชนเซเช‚ เชธเชพเชฎเช—เซเชฐเซ€ เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚:

STM32 เชฌเซเชฒเซ เชชเชฟเชฒ: DM16 เชกเซเชฐเชพเช‡เชตเชฐ เชธเชพเชฅเซ‡ 634 LEDs
STM8: เช› PWM เชชเชฟเชจ เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡
STM8: เชคเซเชฐเชฃ เชชเชฟเชจ เชชเชฐ 8 RGB LED, เชตเชฟเช•เซเชทเซ‡เชช

เช…เชธเซเชตเซ€เช•เชฐเชฃ: เชนเซเช‚ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐ เชจเชฅเซ€, เชนเซเช‚ เชˆเชฒเซ‡เช•เซเชŸเซเชฐเซ‹เชจเชฟเช•เซเชธเชฎเชพเช‚ เชŠเช‚เชกเซเช‚ เชœเซเชžเชพเชจ เชงเชฐเชพเชตเชคเซ‹ เชนเซ‹เชตเชพเชจเซ‹ เชกเซ‹เชณ เช•เชฐเชคเซ‹ เชจเชฅเซ€, เช† เชฒเซ‡เช– เชฎเชพเชฐเชพ เชœเซ‡เชตเชพ เชเชฎเซ‡เชšเซเชฏเซ‹เชฐ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชพเชฏเซ‡เชฒ เช›เซ‡. เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชฎเซ‡เช‚ เชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เชฌเซ‡ เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚ เชฒเช•เซเชทเซเชฏ เชชเซเชฐเซ‡เช•เซเชทเช• เชคเชฐเซ€เช•เซ‡ เชฎเชพเชจเซเชฏเซเช‚ เชนเชคเซเช‚. เชœเซ‹ เช•เซ‹เชˆเช เชฎเชจเซ‡ เช•เชนเซเชฏเซเช‚ เชนเซ‹เชค เช•เซ‡ เช…เชœเชพเชฃเซเชฏเชพ เชšเชฟเชช เชชเชฐเชจเซ€ เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เชกเชฐเชพเชฎเชฃเซ€ เชจ เชนเชคเซ€, เชคเซ‹ เชฎเซ‡เช‚ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐ เช•เซ‹เชกเชจเชพ เช•เซ‡เชŸเชฒเชพเช• เชŸเซเช•เชกเชพเช“ เชถเซ‹เชงเชตเชพ เช…เชจเซ‡ เช•เชพเชคเชฐ เช…เชจเซ‡ เชเชกเชนเซ‡เชธเชฟเชต เชŸเซ‡เชช เชตเชกเซ‡ เช•เซเชฐเซ‰เชšเชจเซ€ เชถเซ‹เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช˜เชฃเซ‹ เชธเชฎเชฏ เชตเชฟเชคเชพเชตเซเชฏเซ‹ เชจ เชนเซ‹เชค.

เช† เชฒเซ‡เช–เชจเซ‹ เชซเซ‹เช•เชธ เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ เชชเชฐ เช›เซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชชเชฐ เชจเชนเซ€เช‚, เชคเซ‡เชฅเซ€ เช•เซ‹เชก เช–เซ‚เชฌ เชธเซเช˜เชก เช…เชจเซ‡ เช˜เชฃเซ€ เชตเชพเชฐ เช–เซ‡เช‚เชšเชพเชฏเซ‡เชฒเซ‹ เชจ เชนเซ‹เชˆ เชถเช•เซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชชเซ‹เชคเซ‡ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เช›เซ‡, เชœเซ‹เช•เซ‡ เชจเชตเซ€ เชšเชฟเชช เชธเชพเชฅเซ‡ เชชเซเชฐเชฅเชฎ เชชเชฐเชฟเชšเชฏ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡.

เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เชฎเชพเชฐเซ‹ เชฒเซ‡เช– เชถเซ‹เช–เชฎเชพเช‚ เชจเชฟเชฎเชœเซเชœเชจเชจเชพ เชธเชฎเชพเชจ เชคเชฌเช•เซเช•เซ‡ เช•เซ‹เชˆเชจเซ‡ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

เชเชธเชŸเซ€เชเชฎ 32

DM16 เช…เชจเซ‡ SPI เชธเชพเชฅเซ‡ 634 LEDs

เชฌเซเชฒเซ เชชเชฟเชฒ (STM32F103C8T6) เช…เชจเซ‡ DM634 LED เชกเซเชฐเชพเช‡เชตเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเช• เชจเชพเชจเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ. เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชกเซเชฐเชพเช‡เชตเชฐ, STM IO เชชเซ‹เชฐเซเชŸเซเชธ เชถเซ‹เชงเซ€เชถเซเช‚ เช…เชจเซ‡ SPI เชจเซ‡ เช—เซ‹เช เชตเซ€เชถเซเช‚.

DM634

16 16-เชฌเซ€เชŸ PWM เช†เช‰เชŸเชชเซเชŸ เชธเชพเชฅเซ‡ เชคเชพเช‡เชตเชพเชจเชจเซ€ เชšเชฟเชช, เชธเชพเช‚เช•เชณเซ‹เชฎเชพเช‚ เชœเซ‹เชกเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชฒเซ‹-เชเชจเซเชก 12-เชฌเซ€เชŸ เชฎเซ‹เชกเชฒ เช˜เชฐเซ‡เชฒเซเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚เชฅเซ€ เชœเชพเชฃเซ€เชคเซเช‚ เช›เซ‡ เชฒเชพเช‡เชŸเชชเซ‡เช•. เชเช• เชธเชฎเชฏเซ‡, DM63x เช…เชจเซ‡ เชœเชพเชฃเซ€เชคเชพ TLC5940 เชตเชšเซเชšเซ‡ เชชเชธเช‚เชฆเช—เซ€ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชฎเซ‡เช‚ เช˜เชฃเชพ เช•เชพเชฐเชฃเซ‹เชธเชฐ DM เชชเชธเช‚เชฆ เช•เชฐเซเชฏเซเช‚: 1) Aliexpress เชชเชฐ TLC เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชจเช•เชฒเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชเช• เชจเชฅเซ€; 2) เชกเซ€เชเชฎ เชชเชพเชธเซ‡ เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ เชœเชจเชฐเซ‡เชŸเชฐ เชธเชพเชฅเซ‡ เชธเซเชตเชพเชฏเชคเซเชค PWM เช›เซ‡; 3) เช…เชฒเซ€ เชคเชฐเชซเชฅเซ€ เชชเชพเชฐเซเชธเชฒเชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ เชคเซ‡ เชฎเซ‹เชธเซเช•เซ‹เชฎเชพเช‚ เชธเชธเซเชคเซ€ เชฐเซ€เชคเซ‡ เช–เชฐเซ€เชฆเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช…เชจเซ‡, เช…เชฒเชฌเชคเซเชค, เชคเซˆเชฏเชพเชฐ เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เชšเชฟเชชเชจเซ‡ เชœเชพเชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเซ€ เชคเซ‡ เชถเซ€เช–เชตเซเช‚ เชฐเชธเชชเซเชฐเชฆ เชนเชคเซเช‚. เชšเชฟเชชเซเชธ เชนเชตเซ‡ เชฎเซเช–เซเชฏเชคเซเชตเซ‡ SSOP24 เชชเซ‡เช•เซ‡เชœเชฎเชพเช‚ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชคเซ‡เช“ เชเชกเซ‡เชชเซเชŸเชฐ เชชเชฐ เชธเซ‹เชฒเซเชกเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เช›เซ‡.

เช‰เชคเซเชชเชพเชฆเช• เชคเชพเช‡เชตเชพเชจ เชนเซ‹เชตเชพเชฅเซ€, เชกเซ‡เชŸเชพเชถเซ€เชŸ เชšเชฟเชช เชšเซ€เชจเซ€ เช…เช‚เช—เซเชฐเซ‡เชœเซ€เชฎเชพเช‚ เชฒเช–เซ‡เชฒเซ€ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชฎเชœเชพ เช†เชตเชถเซ‡. เชชเชนเซ‡เชฒเชพ เช†เชชเชฃเซ‡ เชชเชฟเชจเช†เช‰เชŸ เชœเซ‹เชˆเช เช›เซ€เช (เชชเชฟเชจ เช•เชจเซ‡เช•เซเชถเชจ) เช•เชฏเชพ เชชเช—เชจเซ‡ เชถเซเช‚ เชœเซ‹เชกเชตเซเช‚ เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซ‡ เชชเชฟเชจเชจเซเช‚ เชตเชฐเซเชฃเชจ (เชชเชฟเชจ เชตเชฐเซเชฃเชจ). 16 เชชเชฟเชจ:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชกเซ€เชธเซ€ เชธเชฟเช‚เช• เชธเซเชคเซเชฐเซ‹เชคเซ‹ (เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ)

เชธเชฟเช‚เช• / เช“เชชเชจ-เชกเซเชฐเซ‡เชจ เช†เช‰เชŸเชชเซเชŸ - เชกเซเชฐเซ‡เช‡เชจ; เชตเชนเซ‡เชคเชพ เชชเซเชฐเชตเชพเชนเชจเซ‹ เชธเซเชคเซเชฐเซ‹เชค; เช†เช‰เชŸเชชเซเชŸ เชธเช•เซเชฐเชฟเชฏ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชœเชฎเซ€เชจ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡ - เชเชฒเช‡เชกเซ€ เชกเซเชฐเชพเช‡เชตเชฐ เชธเชพเชฅเซ‡ เช•เซ‡เชฅเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡. เช‡เชฒเซ‡เช•เซเชŸเซเชฐเชฟเช•เชฒเซ€, เช†, เช…เชฒเชฌเชคเซเชค, "เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ" เชจเชฅเซ€ (เช–เซเชฒเซเชฒเซ€ เช—เชŸเชฐ), เชชเชฐเช‚เชคเซ เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธเชฎเชพเช‚ เชกเซเชฐเซ‡เช‡เชจ เชฎเซ‹เชกเชฎเชพเช‚ เชชเชฟเชจ เชฎเชพเชŸเซ‡ เช† เชนเซ‹เชฆเซเชฆเซ‹ เช˜เชฃเซ€เชตเชพเชฐ เชœเซ‹เชตเชพ เชฎเชณเซ‡ เช›เซ‡.

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เช†เช‰เชŸเชชเซเชŸ เชตเชฐเซเชคเชฎเชพเชจ เชฎเซ‚เชฒเซเชฏ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ REXT เช…เชจเซ‡ GND เชตเชšเซเชšเซ‡เชจเชพ เชฌเชพเชนเซเชฏ เชชเซเชฐเชคเชฟเชฐเซ‹เชงเช•เซ‹

REXT เชชเชฟเชจ เช…เชจเซ‡ เช—เซเชฐเชพเช‰เชจเซเชก เชตเชšเซเชšเซ‡ เชฐเซ‡เชซเชฐเชจเซเชธ เชฐเซ‡เชเชฟเชธเซเชŸเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡, เชœเซ‡ เช†เช‰เชŸเชชเซเชŸเชจเชพ เช†เช‚เชคเชฐเชฟเช• เชชเซเชฐเชคเชฟเช•เชพเชฐเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชกเซ‡เชŸเชพเชถเซ€เชŸเชจเชพ เชชเซƒเชทเซเช  9 เชชเชฐเชจเซ‹ เช—เซเชฐเชพเชซ เชœเซเช“. DM634 เชฎเชพเช‚, เช† เชชเซเชฐเชคเชฟเช•เชพเชฐเชจเซ‡ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชฆเซเชตเชพเชฐเชพ เชชเชฃ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชเช•เช‚เชฆเชฐ เชคเซ‡เชœ (เชตเซˆเชถเซเชตเชฟเช• เชคเซ‡เชœ); เชนเซเช‚ เช† เชฒเซ‡เช–เชฎเชพเช‚ เชตเชฟเช—เชคเซ‹เชฎเชพเช‚ เชœเชˆเชถ เชจเชนเซ€เช‚, เชนเซเช‚ เช…เชนเซ€เช‚ เชซเช•เซเชค 2.2 - 3 kOhm เชฐเซ‡เชเชฟเชธเซเชŸเชฐ เชฎเซ‚เช•เซ€เชถ.

เชšเชฟเชชเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเซ€ เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เช‰เชชเช•เชฐเชฃ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซเช‚ เชตเชฐเซเชฃเชจ เชœเซ‹เชˆเช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เชนเชพ, เช…เชนเซ€เช‚ เชคเซ‡ เช›เซ‡, เชšเชพเช‡เชจเซ€เช เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เชคเซ‡เชจเซ€ เชคเชฎเชพเชฎ เช•เซ€เชฐเซเชคเชฟเชฎเชพเช‚. เช†เชจเซเช‚ เชญเชพเชทเชพเช‚เชคเชฐ เช•เชฐเชตเซเช‚ เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เช›เซ‡, เชœเซ‹ เชคเชฎเซ‡ เชˆเชšเซเช›เซ‹ เชคเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชœเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชฌเซ€เชœเซ€ เชฐเซ€เชค เช›เซ‡ - เช•เชพเชฐเซเชฏเชพเชคเซเชฎเช• เชฐเซ€เชคเซ‡ เชธเชฎเชพเชจ TLC5940 เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ เชคเซ‡ เชœเซเช“:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
... เช‰เชชเช•เชฐเชฃเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชฆเชพเช–เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ เชคเซเชฐเชฃ เชชเชฟเชจ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. SCLK เชธเชฟเช—เซเชจเชฒเชจเซ€ เชตเชงเชคเซ€ เชงเชพเชฐ SIN เชชเชฟเชจเชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพเชจเซ‡ เช†เช‚เชคเชฐเชฟเช• เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชถเชฟเชซเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชคเชฎเชพเชฎ เชกเซ‡เชŸเชพ เชฒเซ‹เชก เชฅเชˆ เช—เชฏเชพ เชชเช›เซ€, เชŸเซ‚เช‚เช•เชพ เช‰เชšเซเชš XLAT เชธเชฟเช—เซเชจเชฒ เช†เช‚เชคเชฐเชฟเช• เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เชกเซ‡เชŸเชพเชจเซ‡ เชฒเซ…เชš เช•เชฐเซ‡ เช›เซ‡. เช†เช‚เชคเชฐเชฟเช• เชฐเชœเชฟเชธเซเชŸเชฐ เช XLAT เชธเชฟเช—เซเชจเชฒ เชธเซเชคเชฐ เชฆเซเชตเชพเชฐเชพ เชŸเซเชฐเชฟเช—เชฐ เชฅเชฏเซ‡เชฒเชพ เชฆเชฐเชตเชพเชœเชพ เช›เซ‡. เชฌเชงเชพ เชกเซ‡เชŸเชพ เชธเซŒเชฅเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชฌเซ€เชŸ เชชเซเชฐเชฅเชฎ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡.

เชฒเซ‹เช‚เชš - เชฒเซ‡เชš/เชฒเซ‡เชš/เชฒเซ‹เช•.
เชตเชงเชคเซ€ เชงเชพเชฐ - เชชเชฒเซเชธเชจเซ€ เช…เช—เซเชฐเชฃเซ€ เชงเชพเชฐ
MSB เชชเซเชฐเชฅเชฎ - เชธเซŒเชฅเซ€ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ (เชกเชพเชฌเซ‡เชฅเซ€) เชฌเซ€เชŸ เช†เช—เชณ.
เชกเซ‡เชŸเชพ เช˜เชกเชฟเชฏเชพเชณ เชฎเชพเชŸเซ‡ - เช•เซเชฐเชฎเชถเชƒ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ‹ (เชฌเซ€เชŸ เชฌเชพเชฏ เชฌเซ€เชŸ).

เชถเชฌเซเชฆ เช•เชณเชฃ เช˜เชฃเซ€เชตเชพเชฐ เชšเชฟเชชเซเชธ เชฎเชพเชŸเซ‡เชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชฎเชพเช‚ เชœเซ‹เชตเชพ เชฎเชณเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชตเชฟเชตเชฟเชง เชฐเซ€เชคเซ‡ เชญเชพเชทเชพเช‚เชคเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชธเชฎเชœเชฃ เช–เชพเชคเชฐ เชนเซเช‚ เชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ€เชถ

เชเช• เชจเชพเชจเซ‹ เชถเซˆเช•เซเชทเชฃเชฟเช• เช•เชพเชฐเซเชฏเช•เซเชฐเชฎLED เชกเซเชฐเชพเช‡เชตเชฐ เช เช…เชจเชฟเชตเชพเชฐเซเชฏเชชเชฃเซ‡ เชเช• เชถเชฟเชซเซเชŸ เชฐเชœเซ€เชธเซเชŸเชฐ เช›เซ‡. "เชถเชฟเชซเซเชŸ" (เชชเชพเชณเซ€) เชจเชพเชฎเชฎเชพเช‚ - เช‰เชชเช•เชฐเชฃเชจเซ€ เช…เช‚เชฆเชฐ เชกเซ‡เชŸเชพเชจเซ€ เชฌเซ€เชŸเชตเชพเช‡เช เชนเชฟเชฒเชšเชพเชฒ: เช…เช‚เชฆเชฐ เช–เชธเซ‡เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชฆเชฐเซ‡เช• เชจเชตเซ‹ เชฌเซ€เชŸ เชคเซ‡เชจเซ€ เชธเชพเชฎเซ‡ เชธเชฎเช—เซเชฐ เชธเชพเช‚เช•เชณเชจเซ‡ เช†เช—เชณ เชงเช•เซ‡เชฒเซ‡ เช›เซ‡. เช•เซ‹เชˆ เชชเชฃ เชตเซเชฏเช•เซเชคเชฟ เชถเชฟเชซเซเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชฒเชˆเชกเซ€เชจเชพ เช…เชธเซเชคเชตเซเชฏเชธเซเชค เชเชฌเช•เชตเชพเชจเซเช‚ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเซเช‚ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฌเชซเชฐ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡ เชกเซ‡เชฎเซเชชเชฐ เชฆเซเชตเชพเชฐเชพ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชฐเชœเชฟเชธเซเชŸเชฐเชฅเซ€ เช…เชฒเช— เชชเชกเซ‡ เช›เซ‡ (เช•เชณเชฃ) เช เชเช• เชชเซเชฐเช•เชพเชฐเชจเซ‹ เชตเซ‡เช‡เชŸเชฟเช‚เช— เชฐเซ‚เชฎ เช›เซ‡ เชœเซเชฏเชพเช‚ เชฌเชฟเชŸเซเชธเชจเซ‡ เช‡เชšเซเช›เชฟเชค เช•เซเชฐเชฎเชฎเชพเช‚ เช—เซ‹เช เชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชฌเชงเซเช‚ เชคเซˆเชฏเชพเชฐ เชนเซ‹เชฏ, เชคเซเชฏเชพเชฐเซ‡ เชถเชŸเชฐ เช–เซเชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฌเชฟเชŸเซเชธ เช•เชพเชฎ เชชเชฐ เชœเชพเชฏ เช›เซ‡, เชชเชพเช›เชฒเชพ เชฌเซ‡เชšเชจเซ‡ เชฌเชฆเชฒเซ€เชจเซ‡. เชถเชฌเซเชฆ เช•เชณเชฃ เชฎเชพเช‡เช•เซเชฐเซ‹เช•เชฟเชฐเช•เชฟเชŸเซเชธ เชฎเชพเชŸเซ‡เชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชฎเชพเช‚ เชฒเช—เชญเช— เชนเช‚เชฎเซ‡เชถเชพ เช†เชตเชพ เชกเซ‡เชฎเซเชชเชฐ เชธเซ‚เชšเชตเซ‡ เช›เซ‡, เชชเช›เซ€ เชญเชฒเซ‡ เชคเซ‡ เช•เชฏเชพ เชธเช‚เชฏเซ‹เชœเชจเซ‹เชฎเชพเช‚ เชตเชชเชฐเชพเชฏ เช›เซ‡.

เชคเซ‡เชฅเซ€, DM634 เชชเชฐ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช† เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: DAI เช‡เชจเชชเซเชŸเชจเซ‡ เชฆเซ‚เชฐเชจเชพ เชเชฒเช‡เชกเซ€เชจเชพ เชธเซŒเชฅเซ€ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฌเซ€เชŸเชจเชพ เชฎเซ‚เชฒเซเชฏ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‹, DCK เชจเซ‡ เช‰เชชเชฐ เช…เชจเซ‡ เชจเซ€เชšเซ‡ เช–เซ‡เช‚เชšเซ‹; DAI เช‡เชจเชชเซเชŸเชจเซ‡ เช†เช—เชฒเชพ เชฌเซ€เชŸเชจเชพ เชฎเซ‚เชฒเซเชฏ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‹, DCK เช–เซ‡เช‚เชšเซ‹; เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเชพเชฎ เชฌเชฟเชŸเซเชธ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ (เช˜เชกเชฟเชฏเชพเชณเชฎเชพเช‚), เชœเซ‡ เชชเช›เซ€ เช†เชชเชฃเซ‡ LAT เช–เซ‡เช‚เชšเซ€เช เช›เซ€เช. เช† เชœเชพเชคเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (เชฌเซ€เชŸ-เชฌเซ‡เช‚เช—), เชชเชฐเช‚เชคเซ เช† เชฎเชพเชŸเซ‡ เช–เชพเชธ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ‡เชฒ SPI เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช…เชฎเชพเชฐเชพ STM32 เชชเชฐ เชฌเซ‡ เชจเช•เชฒเซ‹เชฎเชพเช‚ เชชเซเชฐเชธเซเชคเซเชค เช›เซ‡.

เชฌเซเชฒเซ เชชเซ€เชฒ STM32F103

เชชเซเชฐเชพเชฐเช‚เชญเชฟเช•: STM32 เชจเชฟเชฏเช‚เชคเซเชฐเช•เซ‹ เชเชŸเชฎเซ‡เช—เชพ328 เช•เชฐเชคเชพเช‚ เชตเชงเซ เชœเชŸเชฟเชฒ เช›เซ‡ เชœเซ‡ เช•เชฆเชพเชš เชกเชฐเชพเชฎเชฃเซ€ เชฒเชพเช—เซ‡ เช›เซ‡. เชคเชฆเซเชชเชฐเชพเช‚เชค, เชŠเชฐเซเชœเชพ เชฌเชšเชคเชจเชพ เช•เชพเชฐเชฃเซ‹เชธเชฐ, เชฒเช—เชญเช— เชคเชฎเชพเชฎ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเซเชธ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เช†เชตเชฐเซเชคเชจ เช†เช‚เชคเชฐเชฟเช• เชธเซเชคเซเชฐเซ‹เชคเชฅเซ€ 8 เชฎเซ‡เช—เชพเชนเชฐเซเชŸเช เช›เซ‡. เชธเชฆเชจเชธเซ€เชฌเซ‡, STM เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹เช เช•เซ‹เชก เชฒเช–เซเชฏเซ‹ เชนเชคเซ‹ เชœเซ‡ เชšเชฟเชชเชจเซ‡ "เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡เชฒ" 72 เชฎเซ‡เช—เชพเชนเชฐเซเชŸเช เชธเซเชงเซ€ เชฒเชพเชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชนเซเช‚ เชœเชพเชฃเซเช‚ เช›เซเช‚ เชคเซ‡ เชคเชฎเชพเชฎ IDE เชจเชพ เชฒเซ‡เช–เช•เซ‹เช เชคเซ‡เชจเซ‡ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชธเชพเชฎเซ‡เชฒ เช•เชฐเซเชฏเซ‹ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ‡ เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€ (เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เช–เชฐเซ‡เช–เชฐ เช‡เชšเซเช›เซ‹ เชคเซ‹ เชคเชฎเซ‡ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹). เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ‡ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเซเชธ เชšเชพเชฒเซ เช•เชฐเชตเชพ เชชเชกเชถเซ‡.

เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ: เชฌเซเชฒเซ เชชเชฟเชฒ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ STM32F103C8T6 เชšเชฟเชชเชฅเซ€ เชธเชœเซเชœ เช›เซ‡, เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชฌเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เช…เชฎเชจเซ‡ เชฐเชธ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡:

  • เชชเชฟเชจเช†เช‰เชŸเซเชธ - เชšเชฟเชช เชชเชฟเชจเช†เช‰เชŸเซเชธ - เชœเซ‹ เช†เชชเชฃเซ‡ เชฌเซ‹เชฐเซเชก เชœเชพเชคเซ‡ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซ€เช;
  • เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชช - เชšเซ‹เช•เซเช•เชธ เชšเชฟเชช เชฎเชพเชŸเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชช. เชธเช‚เชฆเชฐเซเชญ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพเชฎเชพเช‚ เชธเชฎเช—เซเชฐ เชฒเชพเช‡เชจ เชฎเชพเชŸเซ‡ เชจเช•เชถเซ‹ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชฐเชœเชฟเชธเซเชŸเชฐเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡.
  • เชชเชฟเชจ เชตเซเชฏเชพเช–เซเชฏเชพเช“ เช•เซ‹เชทเซเชŸเช• - เชชเชฟเชจเชจเชพ เชฎเซเช–เซเชฏ เช…เชจเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏเซ‹เชจเซ€ เชธเซ‚เชšเชฟ; "เชตเชพเชฆเชณเซ€ เช—เซ‹เชณเซ€" เชฎเชพเชŸเซ‡ เชคเชฎเซ‡ เชชเชฟเชจ เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เชธเชพเชฅเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐ เชตเชงเซ เช…เชจเซเช•เซ‚เชณ เชšเชฟเชคเซเชฐเซ‹ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹. เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ เชคเชฐเชค เชœ เชฌเซเชฒเซ เชชเชฟเชฒ เชชเชฟเชจเช†เช‰เชŸ เช—เซ‚เช—เชฒ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช† เชšเชฟเชคเซเชฐเชจเซ‡ เชนเชพเชฅเชฎเชพเช‚ เชฐเชพเช–เซ€เช เช›เซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชจเซ‹เช‚เชง: เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐเชฅเซ€ เชšเชฟเชคเซเชฐเชฎเชพเช‚ เชเช• เชญเซ‚เชฒ เชนเชคเซ€, เชœเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชจเซ‹เช‚เชงเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช†เชญเชพเชฐ. เชšเชฟเชคเซเชฐ เชฌเชฆเชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชเช• เชชเชพเช  เช›เซ‡ - เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚เชฅเซ€ เชจเชนเซ€เช‚ เชชเชฃ เชฎเชพเชนเชฟเชคเซ€ เชคเชชเชพเชธเชตเซ€ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡.

เช…เชฎเซ‡ เชกเซ‡เชŸเชพเชถเซ€เชŸ เชฆเซ‚เชฐ เช•เชฐเซ€เช เช›เซ€เช, เชธเช‚เชฆเชฐเซเชญ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เช–เซ‹เชฒเซ€เช เช›เซ€เช, เช…เชจเซ‡ เชนเชตเซ‡เชฅเซ€ เช…เชฎเซ‡ เชซเช•เซเชค เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช.
เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ: เช…เชฎเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เช‡เชจเชชเซเชŸ/เช†เช‰เชŸเชชเซเชŸ เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเซ€เช เช›เซ€เช, SPI เช—เซ‹เช เชตเซ€เช เช›เซ€เช, เชœเชฐเซ‚เชฐเซ€ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเซเชธ เชšเชพเชฒเซ เช•เชฐเซ€เช เช›เซ€เช.

เช‡เชจเชชเซเชŸ เช†เช‰เชŸเชชเซเชŸ

Atmega328 เชชเชฐ, I/O เชจเซ‡ เช…เชคเซเชฏเช‚เชค เชธเชฐเชณ เชฐเซ€เชคเซ‡ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชœ STM32 เชตเชฟเช•เชฒเซเชชเซ‹เชจเซ€ เชตเชฟเชชเซเชฒเชคเชพ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡. เชนเชตเซ‡ เช†เชชเชฃเชจเซ‡ เชซเช•เซเชค เชจเชฟเชทเซเช•เชฐเซเชทเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชพเช‚ เชชเชฃ เชšเชพเชฐ เชตเชฟเช•เชฒเซเชชเซ‹ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ, เชชเซเชถ-เชชเซเชฒ, เชตเซˆเช•เชฒเซเชชเชฟเช• เชชเซเชถ-เชชเซเชฒ, เชตเซˆเช•เชฒเซเชชเชฟเช• เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ

"เชชเซเชฒ-เชชเซเชถ" (เชชเซเชถ-เชชเซเชฒ) เช Arduino เชจเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เช†เช‰เชŸเชชเซเชŸ เช›เซ‡, เชชเชฟเชจ เช‰เช‚เชšเซ€ เช…เชฅเชตเชพ เชจเซ€เชšเซ€ เช•เชฟเช‚เชฎเชค เชฒเชˆ เชถเช•เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ "เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ" เชธเชพเชฅเซ‡ เชคเซเชฏเชพเช‚ เช›เซ‡ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“, เชœเซ‹ เช•เซ‡ เชนเช•เซ€เช•เชคเชฎเชพเช‚ เช…เชนเซ€เช‚ เชฌเชงเซเช‚ เชธเชฐเชณ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เช†เช‰เชŸเชชเซเชŸ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ / เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชฐเซเชŸเชจเซ‡ เช†เช‰เชŸเชชเซเชŸ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: / เช†เช‰เชŸเชชเซเชŸ เชฌเชซเชฐ เชธเช•เซเชทเชฎ: / โ€“ เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ เชฎเซ‹เชก: เช†เช‰เชŸเชชเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ "0" N-MOSเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‡ เช›เซ‡, เช†เช‰เชŸเชชเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ "1" เชชเซ‹เชฐเซเชŸเชจเซ‡ Hi-Z เชฎเซ‹เชกเชฎเชพเช‚ เช›เซ‹เชกเซ€ เชฆเซ‡ เช›เซ‡ ( P-MOS เชธเช•เซเชฐเชฟเชฏ เชฅเชฏเซ‡เชฒ เชจเชฅเซ€ ) / โ€“ เชชเซเชถ-เชชเซเชฒ เชฎเซ‹เชก: เช†เช‰เชŸเชชเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ โ€œ0โ€ N-MOS เชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‡ เช›เซ‡, เช†เช‰เชŸเชชเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ โ€œ1โ€ P-MOS เชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‡ เช›เซ‡.

เช–เซเชฒเซเชฒเชพ เช—เชŸเชฐ เชตเชšเซเชšเซ‡เชจเซ‹ เชคเชฎเชพเชฎ เชคเชซเชพเชตเชค (เช–เซเชฒเซเชฒเซ€ เช—เชŸเชฐ) "เชชเซเชถ-เชชเซเชฒ" เชฎเชพเช‚เชฅเซ€ (เชชเซเชถ-เชชเซเชฒ) เช เช›เซ‡ เช•เซ‡ เชชเซเชฐเชฅเชฎ เชชเชฟเชจเชฎเชพเช‚ เช‰เชšเซเชš เชธเซเชฅเชฟเชคเชฟ เชธเซเชตเซ€เช•เชพเชฐเซ€ เชถเช•เชพเชคเซ€ เชจเชฅเซ€: เชœเซเชฏเชพเชฐเซ‡ เช†เช‰เชŸเชชเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชเช• เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช‰เชšเซเชš เชชเซเชฐเชคเชฟเช•เชพเชฐ เชฎเซ‹เชกเชฎเชพเช‚ เชœเชพเชฏ เช›เซ‡ (เช‰เชšเซเชš เช…เชตเชฌเชพเชง, เชนเชพเชฏ-เชเซ‡เชก). เชถเซ‚เชจเซเชฏ เชฒเช–เชคเซ€ เชตเช–เชคเซ‡, เชชเซ€เชจ เชคเชพเชฐเซเช•เชฟเช• เช…เชจเซ‡ เชตเชฟเชฆเซเชฏเซเชค เชฌเช‚เชจเซ‡ เชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚ เชธเชฎเชพเชจ เชตเชฐเซเชคเซ‡ เช›เซ‡.

เชธเชพเชฎเชพเชจเซเชฏ เช†เช‰เชŸเชชเซเชŸ เชฎเซ‹เชกเชฎเชพเช‚, เชชเชฟเชจ เชซเช•เซเชค เช†เช‰เชŸเชชเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เช“เชจเซเช‚ เชชเซเชฐเชธเชพเชฐเชฃ เช•เชฐเซ‡ เช›เซ‡. "เชตเซˆเช•เชฒเซเชชเชฟเช•" เชฎเชพเช‚ เชคเซ‡ เช…เชจเซเชฐเซ‚เชช เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡ (เชœเซเช“ 9.1.4):

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชœเซ‹ เชชเซ‹เชฐเซเชŸ เชฌเซ€เชŸ เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏ เชชเชฟเชจ เชคเชฐเซ€เช•เซ‡ เช—เซ‹เช เชตเซ‡เชฒ เชนเซ‹เชฏ, เชคเซ‹ เชชเชฟเชจ เชฐเชœเชฟเชธเซเชŸเชฐ เช…เช•เซเชทเชฎ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชชเชฟเชจ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒ เชชเชฟเชจ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เชนเซ‹เชฏ เช›เซ‡.

เชฆเชฐเซ‡เช• เชชเชฟเชจเชจเซ€ เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ เชชเชฟเชจ เชตเซเชฏเชพเช–เซเชฏเชพเช“ เชกเซ‡เชŸเชพเชถเซ€เชŸ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡เชฒเซ€ เชˆเชฎเซ‡เชœ เชชเชฐ เช›เซ‡. เชœเซ‹ เชชเชฟเชจเชฎเชพเช‚ เช…เชจเซ‡เช• เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏเซ‹ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชคเซ‡ เชชเซเชฐเชถเซเชจเชจเซ‹ เชœเชตเชพเชฌ เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เชซเซ‚เชŸเชจเซ‹เชŸ เชฆเซเชตเชพเชฐเชพ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชœเซ‹ เชฌเชนเซเชตเชฟเชง เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒ เชเช• เชœ เชชเชฟเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏเซ‹ เชตเชšเซเชšเซ‡เชจเชพ เชธเช‚เช˜เชฐเซเชทเชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เชเช• เชธเชฎเชฏเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชตเซ‹ เชœเซ‹เชˆเช, เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒ เช•เซเชฒเซ‹เช• เชเชจเซ‡เชฌเชฒ เชฌเซ€เชŸ (เชฏเซ‹เช—เซเชฏ RCC เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚)เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชŸเซ‰เช—เชฒ เช•เชฐเซ€เชจเซ‡.

เช›เซ‡เชฒเซเชฒเซ‡, เช†เช‰เชŸเชชเซเชŸ เชฎเซ‹เชกเชฎเชพเช‚ เชชเชฟเชจเชจเซ€ เชชเชฃ เช˜เชกเชฟเชฏเชพเชณเชจเซ€ เชเชกเชช เชนเซ‹เชฏ เช›เซ‡. เช† เชฌเซ€เชœเซ€ เชŠเชฐเซเชœเชพ เชฌเชšเชค เชธเซเชตเชฟเชงเชพ เช›เซ‡; เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชฎเชนเชคเซเชคเชฎ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชญเซ‚เชฒเซ€ เชœเชˆเช เช›เซ€เช.

เชคเซ‡เชฅเซ€: เช…เชฎเซ‡ SPI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชฌเซ‡ เชชเชฟเชจ (เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เช…เชจเซ‡ เช˜เชกเชฟเชฏเชพเชณ เชธเชฟเช—เซเชจเชฒ เชธเชพเชฅเซ‡) "เชตเซˆเช•เชฒเซเชชเชฟเช• เชชเซเชถ-เชชเซเชฒ เชซเช‚เช•เซเชถเชจ" เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เช…เชจเซ‡ เชฌเซ€เชœเซ€ เชเช• (LAT) "เชฐเซ‡เช—เซเชฏเซเชฒเชฐ เชชเซเชถ-เชชเซเชฒ" เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชจเซ‡ เชธเซ‹เช‚เชชเชคเชพ เชชเชนเซ‡เชฒเชพ, เชšเชพเชฒเซ‹ SPI เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเซ€เช.

SPI

เชฌเซ€เชœเซ‹ เชจเชพเชจเซ‹ เชถเซˆเช•เซเชทเชฃเชฟเช• เช•เชพเชฐเซเชฏเช•เซเชฐเชฎ

SPI เช…เชฅเชตเชพ เชธเซ€เชฐเซ€เชฏเชฒ เชชเซ‡เชฐเซ€เชซเซ‡เชฐเชฒ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ (เชธเซ€เชฐเซ€เชฏเชฒ เชชเซ‡เชฐเซ€เชซเซ‡เชฐเชฒ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ) เชเช• MK เชจเซ‡ เช…เชจเซเชฏ MK เช…เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฌเชนเชพเชฐเชจเซ€ เชฆเซเชจเชฟเชฏเชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชธเชฐเชณ เช…เชจเซ‡ เช–เซ‚เชฌ เชœ เช…เชธเชฐเช•เชพเชฐเช• เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช›เซ‡. เชคเซ‡เชจเชพ เช“เชชเชฐเซ‡เชถเชจเชจเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค เช‰เชชเชฐ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชตเชฐเซเชฃเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซเชฏเชพเช‚ เชšเชพเช‡เชจเซ€เช เชเชฒเช‡เชกเซ€ เชกเซเชฐเชพเช‡เชตเชฐ เชตเชฟเชถเซ‡ (เชธเช‚เชฆเชฐเซเชญ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพเชฎเชพเช‚, เชตเชฟเชญเชพเช— 25 เชœเซเช“). SPI เชฎเชพเชธเซเชŸเชฐ (โ€œเชฎเชพเชธเซเชŸเชฐโ€) เช…เชจเซ‡ เชธเซเชฒเซ‡เชต (โ€œเชธเซเชฒเซ‡เชตโ€) เชฎเซ‹เชกเชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. SPI เชชเชพเชธเซ‡ เชšเชพเชฐ เชฎเซ‚เชณเชญเซ‚เชค เชšเซ‡เชจเชฒเซ‹ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€:

  • MOSI, เชฎเชพเชธเซเชŸเชฐ เช†เช‰เชŸเชชเซเชŸ / เชธเซเชฒเซ‡เชต เช‡เชจเชชเซเชŸ: เช† เชชเชฟเชจ เชฎเชพเชธเซเชŸเชฐ เชฎเซ‹เชกเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเซเชฒเซ‡เชต เชฎเซ‹เชกเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡;
  • MISO, เชฎเชพเชธเซเชŸเชฐ เช‡เชจเชชเซเชŸ / เชธเซเชฒเซ‡เชต เช†เช‰เชŸเชชเซเชŸ: เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, เชคเซ‡ เชฎเชพเชธเซเชŸเชฐเชฎเชพเช‚ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเซเชฒเซ‡เชตเชฎเชพเช‚ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡;
  • SCK, เชธเซ€เชฐเซ€เชฏเชฒ เช˜เชกเชฟเชฏเชพเชณ: เชฎเชพเชธเซเชŸเชฐเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจเชจเซ€ เช†เชตเชฐเซเชคเชจ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชธเซเชฒเซ‡เชตเชฎเชพเช‚ เช˜เชกเชฟเชฏเชพเชณ เชธเชฟเช—เซเชจเชฒ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡. เช…เชจเชฟเชตเชพเชฐเซเชฏเชชเชฃเซ‡ เชงเชฌเช•เชพเชฐเชพ เชฎเชพเชฐเชตเชพ;
  • เชเชธเชเชธ, เชธเซเชฒเซ‡เชต เชธเชฟเชฒเซ‡เช•เซเชŸ: เช† เชšเซ‡เชจเชฒเชจเซ€ เชฎเชฆเชฆเชฅเซ€, เช—เซเชฒเชพเชฎ เชœเชพเชฃเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡เชฅเซ€ เช•เช‚เชˆเช• เชœเซ‹เชˆเช เช›เซ‡. STM32 เชชเชฐ เชคเซ‡เชจเซ‡ NSS เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚ N = เชจเซ‡เช—เซ‡เชŸเชฟเชต, เชเชŸเชฒเซ‡ เช•เซ‡. เชœเซ‹ เช† เชšเซ‡เชจเชฒเชฎเชพเช‚ เชœเชฎเซ€เชจ เชนเซ‹เชฏ เชคเซ‹ เชจเชฟเชฏเช‚เชคเซเชฐเช• เช—เซเชฒเชพเชฎ เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡. เชคเซ‡ เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ เช†เช‰เชŸเชชเซเชŸ เชฎเซ‹เชก เชธเชพเชฅเซ‡ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฌเซ€เชœเซ€ เชตเชพเชฐเซเชคเชพ เช›เซ‡.

เชฌเซ€เชœเชพ เชฌเชงเชพเชจเซ€ เชœเซ‡เชฎ, STM32 เชชเชฐ SPI เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชฎเชพเช‚ เชธเชฎเซƒเชฆเซเชง เช›เซ‡, เชœเซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เช•เช‚เชˆเช• เช…เช‚เชถเซ‡ เชฎเซเชถเซเช•เซ‡เชฒ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซ‡ เชซเช•เซเชค SPI เชธเชพเชฅเซ‡ เชœ เชจเชนเซ€เช‚, เชชเชฃ I2S เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชธเชพเชฅเซ‡ เชชเชฃ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชคเซ‡เชฎเชจเชพ เชตเชฐเซเชฃเชจเซ‹ เชฎเชฟเชถเซเชฐเชฟเชค เช›เซ‡, เชธเชฎเชฏเชธเชฐ เชฐเซ€เชคเซ‡ เชตเชงเชพเชฐเชพเชจเซเช‚ เช•เชพเชชเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เช…เชฎเชพเชฐเซเช‚ เช•เชพเชฐเซเชฏ เช…เชคเซเชฏเช‚เชค เชธเชฐเชณ เช›เซ‡: เช…เชฎเชพเชฐเซ‡ เชซเช•เซเชค MOSI เช…เชจเซ‡ SCK เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชฎเซ‡ เชตเชฟเชญเชพเช— 25.3.4 (เช…เชฐเซเชง-เชกเซเชชเซเชฒเซ‡เช•เซเชธ เช•เชฎเซเชฏเซเชจเชฟเช•เซ‡เชถเชจ, เชนเชพเชซ-เชกเซเชชเซเชฒเซ‡เช•เซเชธ เช•เชฎเซเชฏเซเชจเชฟเช•เซ‡เชถเชจ) เชชเชฐ เชœเชˆเช เช›เซ€เช, เชœเซเชฏเชพเช‚ เช…เชฎเชจเซ‡ เชฎเชณเซ‡ เช›เซ‡ 1 เช˜เชกเชฟเชฏเชพเชณ เช…เชจเซ‡ 1 เชฆเชฟเชถเชพเชนเซ€เชจ เชกเซ‡เชŸเชพ เชตเชพเชฏเชฐ (1 เช˜เชกเชฟเชฏเชพเชณ เชธเช‚เช•เซ‡เชค เช…เชจเซ‡ 1 เชฆเชฟเชถเชพเชนเซ€เชจ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ):

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เช† เชฎเซ‹เชกเชฎเชพเช‚, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เชพเช‚ เชคเซ‹ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ-เช“เชจเซเชฒเซ€ เช…เชฅเชตเชพ เชฐเชฟเชธเซ€เชต-เช“เชจเซเชฒเซ€ เชฎเซ‹เชกเชฎเชพเช‚ SPI เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. / เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ-เช“เชจเซเชฒเซ€ เชฎเซ‹เชก เช เชกเซเชชเซเชฒเซ‡เช•เซเชธ เชฎเซ‹เชก เชœเซ‡เชตเซ‹ เชœ เช›เซ‡: เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เชชเชฟเชจ เชชเชฐ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เชฅเชพเชฏ เช›เซ‡ (เชฎเชพเชธเซเชŸเชฐ เชฎเซ‹เชกเชฎเชพเช‚ MOSI เช…เชฅเชตเชพ เชธเซเชฒเซ‡เชต เชฎเซ‹เชกเชฎเชพเช‚ MISO), เช…เชจเซ‡ เชฐเชฟเชธเซ€เชต เชชเชฟเชจ (เช…เชจเซเช•เซเชฐเชฎเซ‡ MISO เช…เชฅเชตเชพ MOSI) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจเชฟเชฏเชฎเชฟเชค I/O เชชเชฟเชจ เชคเชฐเซ€เช•เซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. . เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชซเช•เซเชค Rx เชฌเชซเชฐเชจเซ‡ เช…เชตเช—เชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ (เชœเซ‹ เชคเซ‡ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡, เชคเซ‹ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เชกเซ‡เชŸเชพ เชนเชถเซ‡ เชจเชนเซ€เช‚).

เชธเชฐเชธ, MISO เชชเชฟเชจ เชฎเชซเชค เช›เซ‡, เชšเชพเชฒเซ‹ LAT เชธเชฟเช—เซเชจเชฒเชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€เช. เชšเชพเชฒเซ‹ เชธเซเชฒเซ‡เชต เชธเชฟเชฒเซ‡เช•เซเชŸ เชœเซ‹เชˆเช, เชœเซ‡ STM32 เชชเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชŸเชฟเช•เชฒเซ€ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซ‡ เช…เชคเซเชฏเช‚เชค เช…เชจเซเช•เซ‚เชณ เช›เซ‡. เช…เชฎเซ‡ เชตเชฟเชญเชพเช— 25.3.1 SPI เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจเชฎเชพเช‚ เชธเชฎเชพเชจ เชจเชพเชฎเชจเซ‹ เชซเช•เชฐเซ‹ เชตเชพเช‚เชšเซ€เช เช›เซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ NSS (SSM = 1) / เชธเซเชฒเซ‡เชต เชชเชธเช‚เชฆเช—เซ€ เชฎเชพเชนเชฟเชคเซ€ SPI_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชจเชพ SSI เชฌเซ€เชŸเชฎเชพเช‚ เชธเชฎเชพเชฏเซ‡เชฒ เช›เซ‡. เชฌเชพเชนเซเชฏ NSS เชชเชฟเชจ เช…เชจเซเชฏ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชฎเชพเชŸเซ‡ เชฎเชซเชค เชฐเชนเซ‡ เช›เซ‡.

เชฐเชœเชฟเชธเซเชŸเชฐ เชชเชฐ เชฒเช–เชตเชพเชจเซ‹ เชธเชฎเชฏ เช›เซ‡. เชฎเซ‡เช‚ SPI2 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เชคเซ‡เชจเซเช‚ เช†เชงเชพเชฐ เชธเชฐเชจเชพเชฎเซเช‚ เชœเซเช“ - เชตเชฟเชญเชพเช— 3.3 เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชชเชฎเชพเช‚:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เชธเชพเชฐเซเช‚, เชšเชพเชฒเซ‹ เชถเชฐเซ‚ เช•เชฐเซ€เช:

#define _SPI2_(mem_offset) (*(volatile uint32_t *)(0x40003800 + (mem_offset)))

เชตเชฟเชญเชพเช— 25.3.3 เช–เซ‹เชฒเซ‹ เชธเซเชต-เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ เชถเซ€เชฐเซเชทเช• เชธเชพเชฅเซ‡ "เชฎเชพเชธเซเชŸเชฐ เชฎเซ‹เชกเชฎเชพเช‚ SPI เชจเซ€ เช—เซ‹เช เชตเชฃเซ€":

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

1. SPI_CR2 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชฌเซ€เชŸเซเชธ BR[0:1] เชธเชพเชฅเซ‡ เชธเซ€เชฐเซ€เชฏเชฒ เช•เซเชฒเซ‹เช• เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ เชธเซ‡เชŸ เช•เชฐเซ‹.

เชฐเชœเชฟเชธเซเชŸเชฐ เช เชœ เชจเชพเชฎเชจเชพ เชธเช‚เชฆเชฐเซเชญ เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชธเชฐเชจเชพเชฎเซเช‚ เชถเชฟเชซเซเชŸ (เชธเชฐเชจเชพเชฎเซเช‚ เช‘เชซเชธเซ‡เชŸ) CR1 - 0x00 เชฎเชพเชŸเซ‡, เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชคเชฎเชพเชฎ เชฌเชฟเชŸเซเชธ เชธเชพเชซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชฎเซ‚เชฒเซเชฏ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเซ‹ 0x0000):

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

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 เชชเชฐ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ เชœเซเช“)

เช…เชฎเซ‡ เช…เชนเซ€เช‚ เชกเซ‡เชŸเชพเชถเซ€เชŸ เชตเชพเช‚เชšเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชตเชพเชฅเซ€ เช…เชจเซ‡ เชธเซเช•เซ€เชฎเซ‡เชŸเชฟเช•เซเชธเชจเซ‡ เชœเซ‹เชˆ เชฐเชนเซเชฏเชพ เชจเชฅเซ€, เชšเชพเชฒเซ‹ เชชเซƒเชทเซเช  704 (SPI เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจ) เชชเชฐเชจเชพ CPOL เช…เชจเซ‡ CPHA เชฌเชฟเชŸเซเชธเชจเชพ เชŸเซ‡เช•เซเชธเซเชŸ เชตเชฐเซเชฃเชจ เชชเชฐ เชจเชœเซ€เช•เชฅเซ€ เชจเชœเชฐ เช•เชฐเซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เช˜เชกเชฟเชฏเชพเชณเชจเซ‹ เชคเชฌเช•เซเช•เซ‹ เช…เชจเซ‡ เชงเซเชฐเซเชตเซ€เชฏเชคเชพ
SPI_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชจเชพ CPOL เช…เชจเซ‡ CPHA เชฌเชฟเชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชคเชฎเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชŸเชฟเช•เชฒเซ€ เชšเชพเชฐ เชŸเชพเช‡เชฎเชฟเช‚เช— เชธเช‚เชฌเช‚เชงเซ‹ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. CPOL (เช•เซเชฒเซ‹เช• เชชเซ‹เชฒเซ‡เชฐเชฟเชŸเซ€) เชฌเซ€เชŸ เช˜เชกเชฟเชฏเชพเชณเชจเชพ เชธเชฟเช—เซเชจเชฒเชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เชฅเชคเซ‹ เชจเชฅเซ€. เช† เชฌเซ€เชŸ เชฎเชพเชธเซเชŸเชฐ เช…เชจเซ‡ เชธเซเชฒเซ‡เชต เชฎเซ‹เชกเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ CPOL เชฐเซ€เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เชนเซ‹เชฏ, เชคเซ‹ SCK เชชเชฟเชจ เชฐเซ‡เชธเซเชŸ เชฎเซ‹เชกเชฎเชพเช‚ เช“เช›เซ€ เช›เซ‡. เชœเซ‹ CPOL เชฌเซ€เชŸ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เชนเซ‹เชฏ, เชคเซ‹ เช†เชฐเชพเชฎ เชฎเซ‹เชก เชฆเชฐเชฎเชฟเชฏเชพเชจ SCK เชชเชฟเชจ เชŠเช‚เชšเซ€ เชนเซ‹เชฏ เช›เซ‡.
เชœเซเชฏเชพเชฐเซ‡ CPHA (เช•เซเชฒเซ‹เช• เชซเซ‡เช) เชฌเซ€เชŸ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชนเชพเชˆ เชฌเซ€เชŸ เชŸเซเชฐเซ‡เชช เชธเซเชŸเซเชฐเซ‹เชฌ เช SCK เชธเชฟเช—เซเชจเชฒเชจเซ‹ เชฌเซ€เชœเซ‹ เช•เชฟเชจเชพเชฐเซ‹ เช›เซ‡ (เชœเซ‹ CPOL เชธเซเชชเชทเซเชŸ เชนเซ‹เชฏ เชคเซ‹ เช˜เชŸเซ‡ เช›เซ‡, เชœเซ‹ CPOL เชธเซ‡เชŸ เชนเซ‹เชฏ เชคเซ‹ เชตเชงเซ€ เชœเชพเชฏ เช›เซ‡). เช˜เชกเชฟเชฏเชพเชณเชจเชพ เชธเชฟเช—เซเชจเชฒเชฎเชพเช‚ เชฌเซ€เชœเชพ เชซเซ‡เชฐเชซเชพเชฐ เชฆเซเชตเชพเชฐเชพ เชกเซ‡เชŸเชพ เช•เซ‡เชชเซเชšเชฐ เชฅเชพเชฏ เช›เซ‡. เชœเซ‹ CPHA เชฌเซ€เชŸ เชธเซเชชเชทเซเชŸ เชนเซ‹เชฏ, เชคเซ‹ เชนเชพเชˆ เชฌเซ€เชŸ เชŸเซเชฐเซ‡เชช เชธเซเชŸเซเชฐเซ‹เชฌ เช SCK เชธเชฟเช—เซเชจเชฒเชจเซ€ เชตเชงเชคเซ€ เชงเชพเชฐ เช›เซ‡ (เชœเซ‹ CPOL เชธเซ‡เชŸ เชนเซ‹เชฏ เชคเซ‹ เชซเซ‹เชฒเชฟเช‚เช— เชเชœ, เชœเซ‹ CPOL เชธเชพเชซ เชนเซ‹เชฏ เชคเซ‹ เชตเชงเชคเซ€ เชงเชพเชฐ). เช˜เชกเชฟเชฏเชพเชณเชจเชพ เชธเช‚เช•เซ‡เชคเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เชซเซ‡เชฐเชซเชพเชฐ เชชเชฐ เชกเซ‡เชŸเชพ เช•เซ‡เชชเซเชšเชฐ เชฅเชพเชฏ เช›เซ‡.

เช† เชœเซเชžเชพเชจเชจเซ‡ เช—เซเชฐเชนเชฃ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเซ‡ เชจเชฟเชทเซเช•เชฐเซเชท เชชเชฐ เช†เชตเซ€เช เช›เซ€เช เช•เซ‡ เชฌเช‚เชจเซ‡ เชฌเชฟเชŸเซเชธ เชถเซ‚เชจเซเชฏ เชฐเชนเซ‡เชตเชพ เชœเซ‹เชˆเช, เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เช‡เชšเซเช›เซ€เช เช›เซ€เช เช•เซ‡ SCK เชธเชฟเช—เซเชจเชฒ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชจ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชจเซ€เชšเซเช‚ เชฐเชนเซ‡ เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชชเชฒเซเชธเชจเซ€ เชตเชงเชคเซ€ เชงเชพเชฐ เชชเชฐ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ (เชซเชฟเช— เชœเซเช“. เชฐเชพเช‡เชเชฟเช‚เช— เชเชœ DM634 เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚).

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชธเซŒเชชเซเชฐเชฅเชฎ ST เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธเชฎเชพเช‚ เชถเชฌเซเชฆเชญเช‚เชกเซ‹เชณเชจเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹: เชคเซ‡เชฎเชพเช‚ "เชฌเซ€เชŸเชจเซ‡ เชถเซ‚เชจเซเชฏ เชชเชฐ เชซเชฐเซ€เชฅเซ€ เชธเซ‡เชŸ เช•เชฐเซ‹" เชตเชพเช•เซเชฏ เชฒเช–เชพเชฏเซ‡เชฒเซเช‚ เช›เซ‡. เชฅเซ‹เชกเซ€ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชจเซ‡ เชจเชนเซ€เช‚ เชฅเซ‹เชกเซเช‚ เชธเชพเชซ เช•เชฐเชตเซเช‚, เชœเซ‡เชฎ เช•เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, Atmega.

3. เชกเซ‡เชŸเชพ เชฌเซเชฒเซ‹เช• 8-เชฌเซ€เชŸ เช›เซ‡ เช•เซ‡ 16-เชฌเซ€เชŸ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช›เซ‡ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ DFF เชฌเซ€เชŸ เชธเซ‡เชŸ เช•เชฐเซ‹

เชฎเซ‡เช‚ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ 16-เชฌเซ€เชŸ DM634 เชฒเซ€เชงเซเช‚ เชœเซ‡เชฅเซ€ DM12 เชœเซ‡เชตเชพ 633-เชฌเซ€เชŸ PWM เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เชคเช•เชฒเซ€เชซ เชจ เชชเชกเซ‡. DFF เชจเซ‡ เชเช• เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เช›เซ‡:

#define DFF         0x0800

_SPI2_ (_SPI_CR1) |= DFF; // 16-bit mode

4. เชฌเซเชฒเซ‹เช• เชซเซ‹เชฐเซเชฎเซ‡เชŸ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ SPI_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ LSBFIRST เชฌเซ€เชŸเชจเซ‡ เช—เซ‹เช เชตเซ‹

LSBFIRST, เชคเซ‡เชจเซเช‚ เชจเชพเชฎ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เชคเซ‡เชฎ, เชชเซเชฐเชฅเชฎ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฌเซ€เชŸ เชธเชพเชฅเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจเชจเซ‡ เช—เซ‹เช เชตเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ DM634 เชธเซŒเชฅเซ€ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฌเซ€เชŸเชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡. เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช.

5. เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชฎเซ‹เชกเชฎเชพเช‚, เชœเซ‹ NSS เชชเชฟเชจเชฎเชพเช‚เชฅเซ€ เช‡เชจเชชเซเชŸ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ, เชคเซ‹ เชธเชฎเช—เซเชฐ เชฌเชพเชˆเชŸ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชธเชฟเช•เซเชตเชจเซเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ NSS เชชเชฟเชจ เชชเชฐ เช‰เชšเซเชš เชธเชฟเช—เซเชจเชฒ เชฒเชพเช—เซ เช•เชฐเซ‹. NSS เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชฎเซ‹เชกเชฎเชพเช‚, SPI_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ SSM เช…เชจเซ‡ SSI เชฌเชฟเชŸเซเชธ เชธเซ‡เชŸ เช•เชฐเซ‹. เชœเซ‹ NSS เชชเชฟเชจเชจเซ‹ เช†เช‰เชŸเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชฎเชพเชคเซเชฐ SSOE เชฌเซ€เชŸ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

NSS เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชฎเซ‹เชก เชตเชฟเชถเซ‡ เชญเซ‚เชฒเซ€ เชœเชตเชพ เชฎเชพเชŸเซ‡ SSM เช…เชจเซ‡ SSI เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

#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 เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡, เชšเชพเชฒเซ‹ เชคเชฐเชค เชœ เชเชตเชพ เช•เชพเชฐเซเชฏเซ‹ เชฒเช–เซ€เช เชœเซ‡ เชกเซเชฐเชพเช‡เชตเชฐเชจเซ‡ เชฌเชพเชˆเชŸ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. 25.3.3 เชตเชพเช‚เชšเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‹ โ€œเชฎเชพเชธเซเชŸเชฐ เชฎเซ‹เชกเชฎเชพเช‚ SPI เชจเซ‡ เช—เซ‹เช เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡โ€:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช“เชฐเซเชกเชฐ
เชœเซเชฏเชพเชฐเซ‡ Tx เชฌเชซเชฐ เชชเชฐ เชฌเชพเชˆเชŸ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡.
เชกเซ‡เชŸเชพ เชฌเชพเชˆเชŸ เชชเชฐ เชถเชฟเชซเซเชŸ เชฐเชœเซ€เชธเซเชŸเชฐเชฎเชพเช‚ เชฒเซ‹เชก เชฅเชพเชฏ เช›เซ‡ เชธเชฎเชพเช‚เชคเชฐ เชฎเซ‹เชก (เช†เช‚เชคเชฐเชฟเช• เชฌเชธเชฎเชพเช‚เชฅเซ€) เชชเซเชฐเชฅเชฎ เชฌเซ€เชŸเชจเชพ เชชเซเชฐเชธเชพเชฐเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชœเซ‡เชจเชพ เชชเช›เซ€ เชคเซ‡ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช•เซเชฐเชฎเชฟเช• MOSI เชชเชฟเชจ เชฎเซ‹เชก, CPI_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ LSBFIRST เชฌเชฟเชŸเชจเชพ เชธเซ‡เชŸเชฟเช‚เช—เชจเชพ เช†เชงเชพเชฐเซ‡ เชชเซเชฐเชฅเชฎ เช…เชฅเชตเชพ เช›เซ‡เชฒเซเชฒเซ‹ เชฌเซ€เชŸ เช†เช—เชณ. เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจ เชชเช›เซ€ TXE เชซเซเชฒเซ‡เช— เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ Tx เชฌเชซเชฐเชฅเซ€ เชถเชฟเชซเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐ เชธเซเชงเซ€, เช…เชจเซ‡ เชœเซ‹ CPI_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ TXEIE เชฌเซ€เชŸ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เชนเซ‹เชฏ เชคเซ‹ เชตเชฟเช•เซเชทเซ‡เชช เชชเชฃ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡.

STM เชจเชฟเชฏเช‚เชคเซเชฐเช•เซ‹เชฎเชพเช‚ SPI เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ€ เชเช• เชตเชฟเชถเซ‡เชทเชคเชพ เชคเชฐเชซ เชงเซเชฏเชพเชจ เชฆเซ‹เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เช‚ เช…เชจเซเชตเชพเชฆเชฎเชพเช‚ เชฅเซ‹เชกเชพเช• เชถเชฌเซเชฆเซ‹ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซเชฏเชพ เช›เซ‡. เชเชŸเชฎเซ‡เช—เชพ เชชเชฐ TXE เชงเซเชตเชœ (Tx เช–เชพเชฒเซ€, Tx เช–เชพเชฒเซ€ เช›เซ‡ เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ‡) เชธเช‚เชชเซ‚เชฐเซเชฃ เชฌเชพเชˆเชŸ เชฎเซ‹เช•เชฒเซเชฏเชพ เชชเช›เซ€ เชœ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชฌเชพเชนเซเชฏ. เช…เชจเซ‡ เช…เชนเซ€เช‚ เช† เชงเซเชตเชœ เช†เช‚เชคเชฐเชฟเช• เชถเชฟเชซเซเชŸ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชฌเชพเชˆเชŸ เชฆเชพเช–เชฒ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชคเซเชฏเชพเช‚ เชเช• เชœ เชธเชฎเชฏเซ‡ เชคเชฎเชพเชฎ เชฌเชฟเชŸเซเชธ เชธเชพเชฅเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชธเชฎเชพเช‚เชคเชฐเชฎเชพเช‚), เช…เชจเซ‡ เชชเช›เซ€ เชกเซ‡เชŸเชพ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡, เชฌเชพเชˆเชŸ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ TXE เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช† เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเชพเชฐเชพ LED เชกเซเชฐเชพเช‡เชตเชฐเชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเชจเซ‡ เชฎเซ‹เช•เชฒเซเชฏเชพ เชชเช›เซ€ LAT เชชเชฟเชจ เช–เซ‡เช‚เชšเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ ะฒัะตั… เชกเซ‡เชŸเชพ, เชเชŸเชฒเซ‡ เช•เซ‡ เชเช•เชฒเชพ TXE เชงเซเชตเชœ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เชจเชฅเซ€.

เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช†เชชเชฃเชจเซ‡ เชฌเซ€เชœเชพ เชงเซเชตเชœเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชšเชพเชฒเซ‹ 25.3.7 - "เชธเซเชŸเซ‡เชŸเชธ เชซเซเชฒเซ‡เช—เซเชธ" เชœเซ‹เชˆเช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
<โ€ฆ>
เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชตเซเชฏเชธเซเชค เชงเซเชตเชœ
BSY เชงเซเชตเชœ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชฆเซเชตเชพเชฐเชพ เชธเซ‡เชŸ เช…เชจเซ‡ เชธเชพเชซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชคเซ‡เชจเชพ เชชเชฐ เชฒเช–เชตเชพเชจเซ€ เช•เซ‹เชˆ เช…เชธเชฐ เชฅเชคเซ€ เชจเชฅเซ€). BSY เชงเซเชตเชœ SPI เชธเช‚เชšเชพเชฐ เชธเซเชคเชฐเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.
เชคเซ‡ เชซเชฐเซ€เชฅเซ€ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡:
เชœเซเชฏเชพเชฐเซ‡ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ เช›เซ‡ (เชฎเชพเชธเซเชŸเชฐ เชฎเซ‹เชก เชธเชฟเชตเชพเชฏ เชœเซ‹ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชธเชคเชค เชนเซ‹เชฏ เชคเซ‹)
เชœเซเชฏเชพเชฐเซ‡ SPI เช…เช•เซเชทเชฎ เชนเซ‹เชฏ
เชœเซเชฏเชพเชฐเซ‡ เชฎเชพเชธเซเชŸเชฐ เชฎเซ‹เชกเชฎเชพเช‚ เชญเซ‚เชฒ เชฅเชพเชฏ เช›เซ‡ (MODF=1)
เชœเซ‹ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชธเชคเชค เชจ เชนเซ‹เชฏ, เชคเซ‹ เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชตเชšเซเชšเซ‡ BSY เชซเซเชฒเซ‡เช— เชธเชพเชซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

เช เซ€เช• เช›เซ‡, เช† เช•เชพเชฎเชฎเชพเช‚ เช†เชตเชถเซ‡. เชšเชพเชฒเซ‹ เชถเซ‹เชงเซ€ เช•เชพเชขเซ€เช เช•เซ‡ Tx เชฌเชซเชฐ เช•เซเชฏเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, "SPI เชกเซ‡เชŸเชพ เชฐเชœเซ€เชธเซเชŸเชฐ" เชตเชพเช‚เชšเซ‹:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชฌเชฟเชŸเซเชธ 15:0 DR[15:0] เชกเซ‡เชŸเชพ เชฐเชœเซ€เชธเซเชŸเชฐ
เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‡เชฒ เชกเซ‡เชŸเชพ เช…เชฅเชตเชพ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡.
เชกเซ‡เชŸเชพ เชฐเชœเชฟเชธเซเชŸเชฐเชจเซ‡ เชฌเซ‡ เชฌเชซเชฐเชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชเช• เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ (เชฌเชซเชฐ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ‹) เช…เชจเซ‡ เชเช• เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ (เชฌเชซเชฐ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‹). เชกเซ‡เชŸเชพ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชฒเช–เชตเซเช‚ เช Tx เชฌเชซเชฐเชจเซ‡ เชฒเช–เซ‡ เช›เซ‡, เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚เชฅเซ€ เชตเชพเช‚เชšเชตเชพเชฅเซ€ Rx เชฌเชซเชฐเชฎเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸ เชฎเซ‚เชฒเซเชฏ เชชเชฐเชค เชฅเชถเซ‡.

เชธเชพเชฐเซเช‚, เช…เชจเซ‡ เชธเซเชŸเซ‡เชŸเชธ เชฐเชœเชฟเชธเซเชŸเชฐ, เชœเซเชฏเชพเช‚ TXE เช…เชจเซ‡ BSY เชซเซเชฒเซ‡เช— เชœเซ‹เชตเชพ เชฎเชณเซ‡ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เช…เชฎเซ‡ เชฒเช–เซ€เช:

#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 เชตเช–เชค เชฌเซ‡ เชฌเชพเช‡เชŸเซเชธ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช•เช‚เชˆเช• เช†เชจเชพ เชœเซ‡เชตเซเช‚:

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();
}

เชชเชฐเช‚เชคเซ เช…เชฎเชจเซ‡ เชนเชœเซ เชธเซเชงเซ€ LAT เชชเชฟเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช–เซ‡เช‚เชšเซ€ เชถเช•เชพเชฏ เชคเซ‡ เช–เชฌเชฐ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ I/O เชชเชฐ เชชเชพเช›เชพ เชœเชˆเชถเซเช‚.

เชชเชฟเชจ เชธเซ‹เช‚เชชเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

STM32F1 เชฎเชพเช‚, เชชเชฟเชจเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชฐเชœเชฟเชธเซเชŸเชฐ เชคเชฆเซเชฆเชจ เช…เชธเชพเชฎเชพเชจเซเชฏ เช›เซ‡. เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ Atmega เช•เชฐเชคเชพเช‚ เชตเชงเซ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เช…เชจเซเชฏ STM เชšเชฟเชชเซเชธเชฅเซ€ เชชเชฃ เช…เชฒเช— เช›เซ‡. เชตเชฟเชญเชพเช— 9.1 GPIO เชจเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจ:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชฆเชฐเซ‡เช• เชธเชพเชฎเชพเชจเซเชฏ เชนเซ‡เชคเซเชจเชพ I/O เชชเซ‹เชฐเซเชŸ (GPIO) เชฌเซ‡ 32-เชฌเซ€เชŸ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฐเชœเซ€เชธเซเชŸเชฐ (GPIOx_CRL เช…เชจเซ‡ GPIOx_CRH), เชฌเซ‡ 32-เชฌเซ€เชŸ เชกเซ‡เชŸเชพ เชฐเชœเซ€เชธเซเชŸเชฐ (GPIOx_IDR เช…เชจเซ‡ GPIOx_ODR), เชเช• 32-เชฌเซ€เชŸ เชธเซ‡เชŸ/เชฐเซ€เชธเซ‡เชŸ เชฐเชœเซ€เชธเซเชŸเชฐ (GPIOx_BSRR), 16-เชฌเซ€เชŸ เชฐเซ€เชธเซ‡เชŸ เชฐเชœเซ€เชธเซเชŸเชฐ (GPIOx_BSRR) เช…เชจเซ‡ GPIOx_32BR เชฌเซ€เชŸ เชฌเซเชฒเซ‹เช•เซ€เช‚เช— เชฐเชœเซ€เชธเซเชŸเชฐ (GPIOx_LCKR).

เชชเซเชฐเชฅเชฎ เชฌเซ‡ เชฐเชœเชฟเชธเซเชŸเชฐ เช…เชธเชพเชฎเชพเชจเซเชฏ เช›เซ‡, เช…เชจเซ‡ เชคเชฆเซเชฆเชจ เช…เชธเซเชตเชฟเชงเชพเชœเชจเช• เชชเชฃ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ 16 เชชเซ‹เชฐเซเชŸ เชชเชฟเชจ เชคเซ‡เชฎเชจเซ€ เชตเชšเซเชšเซ‡ โ€œเชญเชพเชˆ เชฆเซ€เช  เชšเชพเชฐ เชฌเชฟเชŸเซเชธโ€ เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชชเชฅเชฐเชพเชฏเซ‡เชฒเชพ เช›เซ‡. เชคเซ‡. เชชเชฟเชจ เชถเซ‚เชจเซเชฏเชฅเซ€ เชธเชพเชค เชธเซ€เช†เชฐเชเชฒเชฎเชพเช‚ เช›เซ‡, เช…เชจเซ‡ เชฌเชพเช•เซ€เชจเชพ เชธเซ€เช†เชฐเชเชšเชฎเชพเช‚ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชฌเชพเช•เซ€เชจเชพ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชชเซ‹เชฐเซเชŸเชจเชพ เชคเชฎเชพเชฎ เชชเชฟเชจเชจเชพ เชฌเชฟเชŸเซเชธ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชธเชฎเชพเชตเชฟเชทเซเชŸ เชนเซ‹เชฏ เช›เซ‡ - เช˜เชฃเซ€เชตเชพเชฐ เช…เชกเชงเชพ "เช†เชฐเช•เซเชทเชฟเชค" เชฌเชพเช•เซ€ เชฐเชนเซ‡ เช›เซ‡.

เชธเชฐเชณเชคเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เชธเซ‚เชšเชฟเชจเชพ เช…เช‚เชคเชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€เช.

เช…เชฎเชจเซ‡ เชฌเซเชฒเซ‹เช•เซ€เช‚เช— เชฐเชœเซ€เชธเซเชŸเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เชธเซ‡เชŸ เช…เชจเซ‡ เชฐเซ€เชธเซ‡เชŸ เชฐเชœเชฟเชธเซเชŸเชฐ เช–เซ‚เชฌ เชœ เชฐเชฎเซเชœเซ€ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เช“ เช†เช‚เชถเชฟเช• เชฐเซ€เชคเซ‡ เชเช•เชฌเซ€เชœเชพเชจเซ€ เชจเช•เชฒ เช•เชฐเซ‡ เช›เซ‡: เชคเชฎเซ‡ เชซเช•เซเชค BSRR เชฎเชพเช‚ เชฌเชงเซเช‚ เชœ เชฒเช–เซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซเชฏเชพเช‚ เช‰เชšเซเชš 16 เชฌเชฟเชŸเซเชธ เชชเชฟเชจเชจเซ‡ เชถเซ‚เชจเซเชฏ เชชเชฐ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเชถเซ‡, เช…เชจเซ‡ เชจเซ€เชšเชฒเชพ 1 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เช…เชฅเชตเชพ เชคเชฎเซ‡ เชชเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. BRR เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชจเซ€เชšเซ‡เชจเชพ 16 เชฌเชฟเชŸเซเชธ เชฎเชพเชคเซเชฐ เชชเชฟเชจ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชฎเชจเซ‡ เชฌเซ€เชœเซ‹ เชตเชฟเช•เชฒเซเชช เช—เชฎเซ‡ เช›เซ‡. เช† เชฐเชœเชฟเชธเซเชŸเชฐ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เช“ เชชเชฟเชจ เชชเชฐ เช…เชฃเซ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เช…เชฃเซ เชธเซ‡เชŸ เช…เชฅเชตเชพ เชฐเซ€เชธเซ‡เชŸ
เชฌเซ€เชŸ เชฒเซ‡เชตเชฒ เชชเชฐ GPIOx_ODR เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹เชจเซ‡ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช•เชฐเชตเชพเชจเซ€ เช•เซ‹เชˆ เชœเชฐเซ‚เชฐ เชจเชฅเซ€: เชเช• เช…เชฅเชตเชพ เชตเชงเซ เชฌเชฟเชŸเซเชธ เชเช• เช…เชฃเซ เชฒเช–เชตเชพเชจเซ€ เช•เซเชฐเชฟเชฏเชพ APB2 เชตเชกเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชœเซ‡ เชฌเซ€เชŸ เชฌเชฆเชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡เชจเชพ เชธเซ‡เชŸ/เชฐเซ€เชธเซ‡เชŸ เชฐเชœเซ€เชธเซเชŸเชฐ (GPIOx_BSRR เช…เชฅเชตเชพ, เชซเช•เซเชค เชฐเซ€เชธเซ‡เชŸ เชฎเชพเชŸเซ‡, GPIOx_BRR) เชชเชฐ "1" เชฒเช–เซ€เชจเซ‡ เช† เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เช…เชจเซเชฏ เชฌเชฟเชŸเซเชธ เชฏเชฅเชพเชตเชค เชฐเชนเซ‡เชถเซ‡.

เชกเซ‡เชŸเชพ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชคเชฆเซเชฆเชจ เชธเซเชต-เชธเซเชชเชทเซเชŸเชฟเชœเชจเช• เชจเชพเชฎเซ‹ เช›เซ‡ - IDR = เช‡เชจเชชเซเชŸ เชฆเชฟเชถเชพ เชฐเชœเซ€เชธเซเชŸเชฐ, เช‡เชจเชชเซเชŸ เชฐเชœเซ€เชธเซเชŸเชฐ; ODR = เช†เช‰เชŸเชชเซเชŸ เชฆเชฟเชถเชพ เชฐเชœเซ€เชธเซเชŸเชฐ, เช†เช‰เชŸเชชเซเชŸ เชฐเชœเซ€เชธเซเชŸเชฐ. เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เช…เชฎเชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชจเชนเซ€เช‚.

เช…เชจเซ‡ เช…เช‚เชคเซ‡, เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชฐเชœเซ€เชธเซเชŸเชฐ. เช…เชฎเชจเซ‡ เชฌเซ€เชœเซ€ SPI เชชเชฟเชจ เชเชŸเชฒเซ‡ เช•เซ‡ PB13, PB14 เช…เชจเซ‡ PB15เชฎเชพเช‚ เชฐเชธ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเซ‡ เชคเชฐเชค เชœ CRH เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเซ€เช เช›เซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เช…เชจเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เช†เชชเชฃเซ‡ 20 เชฅเซ€ 31 เชจเชพ เชฌเซ€เชŸเซเชธเชฎเชพเช‚ เช•เช‚เชˆเช• เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.

เชชเชฟเชจเชฎเชพเช‚เชฅเซ€ เช†เชชเชฃเชจเซ‡ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ‡ เชคเซ‡ เช‰เชชเชฐ เช†เชชเชฃเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชถเซ‹เชงเซ€ เช•เชพเชขเซเชฏเซเช‚ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชนเซ€เช‚ เชนเซเช‚ เชธเซเช•เซเชฐเซ€เชจเชถเซ‹เชŸ เชตเชฟเชจเชพ เช•เชฐเซ€เชถ, เชนเซเช‚ เชเชŸเชฒเซเช‚ เชœ เช•เชนเซ€เชถ เช•เซ‡ MODE เชฆเชฟเชถเชพ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เช•เชฐเซ‡ เช›เซ‡ (เชœเซ‹ เชฌเช‚เชจเซ‡ เชฌเชฟเชŸเซเชธ 0 เชชเชฐ เชธเซ‡เชŸ เชนเซ‹เชฏ เชคเซ‹ เช‡เชจเชชเซเชŸ) เช…เชจเซ‡ เชชเชฟเชจ เชธเซเชชเซ€เชก (เช…เชฎเชจเซ‡ 50MHzเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชฌเช‚เชจเซ‡ เชชเชฟเชจ โ€œ1โ€ เชชเชฐ), เช…เชจเซ‡ CNF เชฎเซ‹เชก เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡: เชจเชฟเชฏเชฎเชฟเชค โ€œเชชเซเชถ-เชชเซเชฒโ€ โ€“ 00, โ€œเชตเซˆเช•เชฒเซเชชเชฟเช•โ€ โ€“ 10. เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡, เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เช‰เชชเชฐ เชœเซ‹เชˆเช เช›เซ€เช, เชฌเชงเซ€ เชชเชฟเชจเชฎเชพเช‚ เชจเซ€เชšเซ‡เชฅเซ€ เชคเซเชฐเซ€เชœเซ‹ เชญเชพเช— เชนเซ‹เชฏ เช›เซ‡ (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 เชฎเชพเชคเซเชฐ เชœเชกเชคเชพ เชฆเซเชตเชพเชฐเชพ, เชคเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชเชตเซเช‚ เชœ เชฐเชนเซเชฏเซเช‚ เช›เซ‡, เชคเซ‡เชจเซ‡ เชฐเชนเซ‡เชตเชพ เชฆเซ‹)

เชนเชตเซ‡ เชฌเชงเซเช‚ เชธเชฐเชธ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เช•เชพเชฐเชฃ เช•เซ‡ เช† STM32 เช›เซ‡, เชคเซ‡ เชตเซ€เชœเชณเซ€ เชฌเชšเชพเชตเซ‡ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชœเชฐเซ‚เชฐเซ€ เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒเซเชธเชจเซ€ เช˜เชกเชฟเชฏเชพเชณเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช˜เชกเชฟเชฏเชพเชณ เชšเชพเชฒเซ เช•เชฐเซ‹

เช˜เชกเชฟเชฏเชพเชณ, เชœเซ‡เชจเซ‡ เช˜เชกเชฟเชฏเชพเชณ เชคเชฐเซ€เช•เซ‡ เชชเชฃ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡ เช˜เชกเชฟเชฏเชพเชณ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡. เช…เชจเซ‡ เช…เชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเช‚เช•เซเชทเซ‡เชช RCC เชจเซ‹เช‚เชงเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชถเซ‹เชงเซ€เช เช›เซ€เช: เช† เชฐเซ€เชธเซ‡เชŸ เช…เชจเซ‡ เช˜เชกเชฟเชฏเชพเชณ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เช›เซ‡.

เช‰เชชเชฐ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เชธเชฆเชญเชพเช—เซเชฏเซ‡, เช˜เชกเชฟเชฏเชพเชณเชจเชพ เชตเชฟเชทเชฏเชจเซ‹ เชธเซŒเชฅเซ€ เชฎเซเชถเซเช•เซ‡เชฒ เชญเชพเช— เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ STM เชจเชพ เชฒเซ‹เช•เซ‹ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชคเซ‡เชฎเชจเซ‹ เช–เซ‚เชฌ เช†เชญเชพเชฐ เชฎเชพเชจเซ€เช เช›เซ€เช (เชซเชฐเซ€ เชเช• เชตเชพเชฐ เชนเซเช‚ เชเช• เชฒเชฟเช‚เช• เช†เชชเซ€เชถ เชกเซ€ เชนเซ‹เชฒเซเชŸเชจเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸ, เชคเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เชคเซ‡ เช•เซ‡เชŸเชฒเซเช‚ เช—เซ‚เช‚เชšเชตเชฃเชญเชฐเซเชฏเซเช‚ เช›เซ‡). เช…เชฎเชจเซ‡ เชซเช•เซเชค เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒ เช•เซเชฒเซ‹เช•เชฟเช‚เช— (เชชเซ‡เชฐเชฟเชซเซ‡เชฐเชฒ เช•เซเชฒเซ‹เช• เชเชจเซ‡เชฌเชฒ เชฐเชœเชฟเชธเซเชŸเชฐ) เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชฐเชœเชฟเชธเซเชŸเชฐเซเชธเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เช†เชฐเชธเซ€เชธเซ€เชจเซเช‚ เชฎเซ‚เชณ เชธเชฐเชจเชพเชฎเซเช‚ เชถเซ‹เชงเซ€เช, เชคเซ‡ "เชฎเซ‡เชฎเชฐเซ€ เชฎเซ‡เชช" เชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

#define _RCC_(mem_offset) (*(volatile uint32_t *)(0x40021000 + (mem_offset)))

เช…เชจเซ‡ เชชเช›เซ€ เช•เซเชฏเชพเช‚ เชคเซ‹ เชคเซ‡ เชฒเชฟเช‚เช• เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹ เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เชชเซเชฒเซ‡เชŸเชฎเชพเช‚ เช•เช‚เชˆเช• เชถเซ‹เชงเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹ เช›เซ‹, เช…เชฅเชตเชพ, เชตเชงเซ เชธเชพเชฐเซเช‚, เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡เชจเชพ เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚เชฅเซ€ เชธเช•เซเชทเชฎ เชฐเชœเชฟเชธเซเชŸเชฐเชจเชพ เชตเชฐเซเชฃเชจเซ‹ เชชเชฐ เชœเชพเช“. เชฐเชœเซ€เชธเซเชŸเชฐเซ‹ เชธเช•เซเชทเชฎ เช•เชฐเซ‹. เชœเซเชฏเชพเช‚ เช…เชฎเชจเซ‡ RCC_APB1ENR เช…เชจเซ‡ RCC_APB2ENR เชฎเชณเชถเซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เช…เชจเซ‡ เชคเซ‡เช“, เชคเซ‡ เชฎเซเชœเชฌ, เชฌเซ€เชŸเซเชธ เชงเชฐเชพเชตเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ SPI2, IOPB (I/O เชชเซ‹เชฐเซเชŸ 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 เชตเซ‹เชฒเซเชŸเชฅเซ€ เชชเชพเชตเชฐ เช•เชฐเซ€เช เช›เซ€เช, เช—เซเชฐเชพเช‰เชจเซเชกเซเชธเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚.

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

STM8 PWM

STM8 เชชเชฐ PWM

เชœเซเชฏเชพเชฐเซ‡ เชนเซเช‚ เชนเชฎเชฃเชพเช‚ เชœ เช† เชฒเซ‡เช–เชจเซเช‚ เช†เชฏเซ‹เชœเชจ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เชนเชคเซ‹, เชคเซเชฏเชพเชฐเซ‡ เชฎเซ‡เช‚, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชซเช•เซเชค เชกเซ‡เชŸเชพเชถเซ€เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชœเชพเชฃเซเชฏเชพ เชšเชฟเชชเชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ‡ เชฎเชพเชธเซเชŸเชฐ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, เชœเซ‡เชฅเซ€ เชนเซเช‚ เชฌเซ‚เชŸ เชตเช—เชฐเชจเชพ เชœเซ‚เชคเชพ เชธเชพเชฅเซ‡ เชธเชฎเชพเชชเซเชค เชจ เชฅเชˆ เชถเช•เซเช‚. STM8 เช† เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชŸเซ‡ เช†เชฆเชฐเซเชถ เชนเชคเซ‹: เชชเซเชฐเชฅเชฎ, เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ STM8S103 เชธเชพเชฅเซ‡เชจเชพ เชฅเซ‹เชกเชพ เชšเชพเช‡เชจเซ€เช เชฌเซ‹เชฐเซเชก เชนเชคเชพ, เช…เชจเซ‡ เชฌเซ€เชœเซเช‚, เชคเซ‡ เช–เซ‚เชฌ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชจเชฅเซ€, เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐ เชตเชพเช‚เชšเชตเชพเชจเซ€ เช…เชจเซ‡ เช‰เช•เซ‡เชฒ เชถเซ‹เชงเชตเชพเชจเซ€ เชฒเชพเชฒเชš เช† เช–เซ‚เชฌ เชœ เช‰เช•เซ‡เชฒเซ‹เชจเชพ เช…เชญเชพเชต เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡.

เชšเชฟเชช เชชเชฃ เช›เซ‡ เชกเซ‡เชŸเชพเชถเซ€เชŸ ะธ เชธเช‚เชฆเชฐเซเชญ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ RM0016, เชชเซเชฐเชฅเชฎเชฎเชพเช‚ เชชเชฟเชจเช†เช‰เชŸ เช…เชจเซ‡ เชฐเชœเซ€เชธเซเชŸเชฐ เชธเชฐเชจเชพเชฎเชพเช‚ เช›เซ‡, เชฌเซ€เชœเชพเชฎเชพเช‚ - เชฌเซ€เชœเซเช‚ เชฌเชงเซเช‚. STM8 เช เชญเชฏเช‚เช•เชฐ IDE เชฎเชพเช‚ C เชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช•เชฐเซ‡เชฒ เช›เซ‡ ST เชตเชฟเชเซเชฏเซเช…เชฒ เชกเซ‡เชตเชฒเชช.

เช˜เชกเชฟเชฏเชพเชณ เช…เชจเซ‡ I/O

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, STM8 2 MHz เชจเซ€ เช†เชตเชฐเซเชคเชจ เชชเชฐ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เช†เชจเซ‡ เชคเชฐเชค เชœ เชธเซเชงเชพเชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡.

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
HSI (เชนเชพเชˆ เชธเซเชชเซ€เชก เชˆเชจเซเชŸเชฐเชจเชฒ) เช˜เชกเชฟเชฏเชพเชณ
HSI เช˜เชกเชฟเชฏเชพเชณ เชธเชฟเช—เซเชจเชฒ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชฌเชฒ เชตเชฟเชญเชพเชœเช• (16 เชฅเซ€ 1) เชธเชพเชฅเซ‡ เช†เช‚เชคเชฐเชฟเช• 8 MHz RC เช“เชธเชฟเชฒเซ‡เชŸเชฐเชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซ‡ เช˜เชกเชฟเชฏเชพเชณ เชตเชฟเชญเชพเชœเช• เชฐเชœเซ€เชธเซเชŸเชฐ (CLK_CKDIVR) เชฎเชพเช‚ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เช›เซ‡.
เชจเซ‹เช‚เชง: เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, 8 เชจเชพ เชตเชฟเชญเชพเชœเช• เชธเชพเชฅเซ‡เชจเซเช‚ HSI RC เช“เชธเชฟเชฒเซ‡เชŸเชฐ เช˜เชกเชฟเชฏเชพเชณ เชธเชฟเช—เซเชจเชฒเชจเชพ เช…เช—เซเชฐเชฃเซ€ เชธเซเชคเซเชฐเซ‹เชค เชคเชฐเซ€เช•เซ‡ เชชเชธเช‚เชฆ เชฅเชฏเซ‡เชฒ เช›เซ‡.

เช…เชฎเชจเซ‡ เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เชฐเชœเชฟเชธเซเชŸเชฐ เชธเชฐเชจเชพเชฎเซเช‚, เชฐเซ‡เชซเชฎเซ‡เชจเชฎเชพเช‚ เชตเชฐเซเชฃเชจ เชฎเชณเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเซเช“ เช•เซ‡ เชฐเชœเชฟเชธเซเชŸเชฐเชจเซ‡ เชธเชพเชซ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

#define CLK_CKDIVR *(volatile uint8_t *)0x0050C6

CLK_CKDIVR &= ~(0x18);

เช†เชชเชฃเซ‡ PWM เชšเชฒเชพเชตเชตเชพ เชœเชˆ เชฐเชนเซเชฏเชพ เช›เซ€เช เช…เชจเซ‡ LED เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เชถเซเช‚, เชšเชพเชฒเซ‹ เชชเชฟเชจเช†เช‰เชŸ เชœเซ‹เชˆเช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เชšเชฟเชช เชจเชพเชจเซ€ เช›เซ‡, เช˜เชฃเชพ เช•เชพเชฐเซเชฏเซ‹ เชธเชฎเชพเชจ เชชเชฟเชจ เชชเชฐ เชธเชธเซเชชเซ‡เชจเซเชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชšเซ‹เชฐเชธ เช•เซŒเช‚เชธเชฎเชพเช‚ เชœเซ‡ เช›เซ‡ เชคเซ‡ "เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ" เช›เซ‡, เชคเซ‡ "เชตเชฟเช•เชฒเซเชช เชฌเชพเช‡เชŸเซเชธ" เชฆเซเชตเชพเชฐเชพ เชธเซเชตเชฟเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชตเชฟเช•เชฒเซเชช เชฌเชพเช‡เชŸเซเชธ) โ€“ เชเชŸเชฎเซ‡เช—เชพ เชซเซเชฏเซเช เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช•. เชคเชฎเซ‡ เชคเซ‡เชฎเชจเชพ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชŸเชฟเช•เชฒเซ€ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชจเชตเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชœ เชธเช•เซเชฐเชฟเชฏ เชฅเชพเชฏ เช›เซ‡. ST เชตเชฟเชเซเชฏเซเช…เชฒ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐ (เชตเชฟเชเซเชฏเซเช…เชฒ เชกเซ‡เชตเชฒเชช เชธเชพเชฅเซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡เชฒ) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชตเชงเซ เชธเชฐเชณ เช›เซ‡, เชœเซ‡ เช† เชฌเชพเช‡เชŸเซเชธ เชฌเชฆเชฒเซ€ เชถเช•เซ‡ เช›เซ‡. เชชเชฟเชจเช†เช‰เชŸ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเชฅเชฎ เชŸเชพเชˆเชฎเชฐเชจเชพ CH1 เช…เชจเซ‡ CH2 เชชเชฟเชจ เชšเซ‹เชฐเชธ เช•เซŒเช‚เชธเชฎเชพเช‚ เช›เซเชชเชพเชฏเซ‡เชฒเชพ เช›เซ‡; STVP เชฎเชพเช‚ AFR1 เช…เชจเซ‡ AFR0 เชฌเชฟเชŸเซเชธ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡, เช…เชจเซ‡ เชฌเซ€เชœเซ‹ เชชเชฃ เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐเชจเชพ CH1 เช†เช‰เชŸเชชเซเชŸเชจเซ‡ PD4 เชฅเซ€ PC5 เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชถเซ‡.

เช†เชฎ, 6 เชชเชฟเชจ LED เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชถเซ‡: เชชเซเชฐเชฅเชฎ เชŸเชพเชˆเชฎเชฐ เชฎเชพเชŸเซ‡ PC6, PC7 เช…เชจเซ‡ PC3, เชฌเซ€เชœเชพ เชฎเชพเชŸเซ‡ PC5, PD3 เช…เชจเซ‡ PA3.

STM8 เชชเชฐ I/O เชชเชฟเชจ เชœเชพเชคเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ STM32 เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชฐเชณ เช…เชจเซ‡ เชตเชงเซ เชคเชพเชฐเซเช•เชฟเช• เช›เซ‡:

  • Atmega DDR เชกเซ‡เชŸเชพ เชกเชฟเชฐเซ‡เช•เซเชถเชจ เชฐเชœเชฟเชธเซเชŸเชฐเชฅเซ€ เชชเชฐเชฟเชšเชฟเชค (เชกเซ‡เชŸเชพ เชกเชพเชฏเชฐเซ‡เช•เซเชถเชจ เชฐเชœเชฟเชธเซเชŸเชฐ): 1 = เช†เช‰เชŸเชชเซเชŸ;
  • เชชเซเชฐเชฅเชฎ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชฐเชœเซ€เชธเซเชŸเชฐ CR1, เชœเซเชฏเชพเชฐเซ‡ เช†เช‰เชŸเชชเซเชŸ, เชชเซเชถ-เชชเซเชฒ เชฎเซ‹เชก (1) เช…เชฅเชตเชพ เช“เชชเชจ เชกเซเชฐเซ‡เช‡เชจ (0) เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡; เชนเซเช‚ เชเชฒเช‡เชกเซ€เชจเซ‡ เช•เซ‡เชฅเซ‹เชกเซเชธ เชธเชพเชฅเซ‡ เชšเชฟเชช เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเช‚ เช›เซเช‚, เชคเซ‡เชฅเซ€ เชนเซเช‚ เช…เชนเซ€เช‚ เชถเซ‚เชจเซเชฏ เช›เซ‹เชกเซเช‚ เช›เซเช‚;
  • เชฌเซ€เชœเซเช‚ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชฐเชœเชฟเชธเซเชŸเชฐ 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 เชธเซ‡เชŸเชฟเช‚เช—

เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เชถเชฐเชคเซ‹ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€เช:

  • เชชเซ€เชกเชฌเซเชฒเซเชฏเซเชเชฎ เช†เชตเชฐเซเชคเชจ - เช†เชตเชฐเซเชคเชจ เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชŸเชพเชˆเชฎเชฐ เชŸเชฟเช• เช•เชฐเซ‡ เช›เซ‡;
  • เชธเซเชตเชคเชƒ-เชฐเซ€เชฒเซ‹เชก, AR - เช‘เชŸเซ‹เชฒเซ‹เชกเซ‡เชฌเชฒ เชฎเซ‚เชฒเซเชฏ เช•เซ‡ เชœเซ‡เชฎเชพเช‚ เชŸเชพเชˆเชฎเชฐ เช—เชฃเชคเชฐเซ€ เช•เชฐเชถเซ‡ (เชชเชฒเซเชธ เช…เชตเชงเชฟ);
  • เช…เชชเชกเซ‡เชŸ เช‡เชตเซ‡เชจเซเชŸ, UEV - เชœเซเชฏเชพเชฐเซ‡ เชŸเชพเชˆเชฎเชฐ เชเช†เชฐเชฎเชพเช‚ เช—เชฃเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชฌเชจเซ‡เชฒเซ€ เช˜เชŸเชจเชพ;
  • PWM เชกเซเชฏเซเชŸเซ€ เชธเชพเชฏเช•เชฒ - PWM เชกเซเชฏเซเชŸเซ€ เชธเชพเชฏเช•เชฒ, เชœเซ‡เชจเซ‡ เช˜เชฃเซ€เชตเชพเชฐ "เชกเซเชฏเซเชŸเซ€ เชซเซ‡เช•เซเชŸเชฐ" เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡;
  • เช•เซ‡เชชเซเชšเชฐ/เชฎเซ‚เชฒเซเชฏ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ‹ - เช•เซ‡เชชเซเชšเชฐ/เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเชพเชŸเซ‡เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ, เชœเซ‡เชฎเชพเช‚ เชŸเชพเชˆเชฎเชฐเซ‡ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€ เช›เซ‡ เช•เช‚เชˆเช• เช•เชฐเชถเซ‡ (PWM เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡ เช†เช‰เชŸเชชเซเชŸ เชธเชฟเช—เซเชจเชฒเชจเซ‡ เช‰เชฒเชŸเชพเชตเซ‡ เช›เซ‡);
  • เชชเซเชฐเซ€เชฒเซ‹เชก เชฎเซ‚เชฒเซเชฏ - เชชเซเชฐเซ€เชฒเซ‹เชกเซ‡เชก เชฎเซ‚เชฒเซเชฏ. เชฎเซ‚เชฒเซเชฏเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ‹ เชœเซเชฏเชพเชฐเซ‡ เชŸเชพเชˆเชฎเชฐ เชŸเชฟเช• เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€, เช…เชจเซเชฏเชฅเชพ PWM เชšเช•เซเชฐ เชคเซ‚เชŸเซ€ เชœเชถเซ‡. เชคเซ‡เชฅเซ€, เชจเชตเชพ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฎเซ‚เชฒเซเชฏเซ‹ เชฌเชซเชฐเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชŸเชพเชˆเชฎเชฐ เชคเซ‡เชจเชพ เช•เชพเช‰เชจเซเชŸเชกเชพเช‰เชจเชจเชพ เช…เช‚เชคเซ‡ เชชเชนเซ‹เช‚เชšเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฐเซ€เชธเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เช–เซ‡เช‚เชšเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡;
  • เชงเชพเชฐ-เชธเช‚เชฐเซ‡เช–เชฟเชค ะธ เชฎเชงเซเชฏ-เชธเช‚เชฐเซ‡เช–เชฟเชค เชฎเซ‹เชกเซเชธ - เชธเชฐเชนเชฆ เชธเชพเชฅเซ‡ เช…เชจเซ‡ เช•เซ‡เชจเซเชฆเซเชฐเชฎเชพเช‚ เช—เซ‹เช เชตเชฃเซ€, เชเชŸเชฎเซ‡เชฒเชจเซ€ เชœเซ‡เชฎ เชœ เชซเชพเชธเซเชŸ เชชเซ€เชกเชฌเซเชฒเซเชฏเซเชเชฎ ะธ เชคเชฌเช•เซเช•เซ‹-เชธเชพเชšเซ‹ PWM.
  • OCiREF, เช†เช‰เชŸเชชเซเชŸ เชธเชฐเช–เชพเชฎเชฃเซ€ เชธเช‚เชฆเชฐเซเชญ เชธเชฟเช—เซเชจเชฒ - เชธเช‚เชฆเชฐเซเชญ เช†เช‰เชŸเชชเซเชŸ เชธเชฟเช—เซเชจเชฒ, เชนเช•เซ€เช•เชคเชฎเชพเช‚, PWM เชฎเซ‹เชกเชฎเชพเช‚ เช…เชจเซเชฐเซ‚เชช เชชเชฟเชจ เชชเชฐ เชถเซเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡.

เชชเชฟเชจเช†เช‰เชŸ เชชเชฐเชฅเซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเซเชชเชทเซเชŸ เช›เซ‡ เชคเซ‡เชฎ, เชฌเซ‡ เชŸเชพเชˆเชฎเชฐเชฎเชพเช‚ PWM เช•เซเชทเชฎเชคเชพเช“ เช›เซ‡ - เชชเซเชฐเชฅเชฎ เช…เชจเซ‡ เชฌเซ€เชœเซเช‚. เชฌเช‚เชจเซ‡ 16-เชฌเซ€เชŸ เช›เซ‡, เชชเซเชฐเชฅเชฎเชฎเชพเช‚ เช˜เชฃเซ€ เชฌเชงเซ€ เชตเชงเชพเชฐเชพเชจเซ€ เชธเซเชตเชฟเชงเชพเช“ เช›เซ‡ (เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชคเซ‡ เช‰เชชเชฐ เช…เชจเซ‡ เชจเซ€เชšเซ‡ เชฌเช‚เชจเซ‡เชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡). เช…เชฎเชพเชฐเซ‡ เชฌเช‚เชจเซ‡เชจเซ‡ เชธเชฎเชพเชจ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชคเซ‡เชฅเซ€ เชฎเซ‡เช‚ เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เช—เชฐเซ€เชฌ เชฌเซ€เชœเชพเชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚, เชœเซ‡เชฅเซ€ เชคเซเชฏเชพเช‚ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเซ€ เชตเชธเซเชคเซเชจเซ‹ เช†เช•เชธเซเชฎเชฟเช• เช‰เชชเชฏเซ‹เช— เชจ เชฅเชพเชฏ. เช•เซ‡เชŸเชฒเซ€เช• เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เชธเช‚เชฆเชฐเซเชญ เชฎเซ‡เชจเซเชฏเซเช…เชฒเชฎเชพเช‚ เชคเชฎเชพเชฎ เชŸเชพเชˆเชฎเชฐเชจเซ€ PWM เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซเช‚ เชตเชฐเซเชฃเชจ เชชเซเชฐเชฅเชฎ เชŸเชพเชˆเชฎเชฐ (17.5.7 PWM เชฎเซ‹เชก) เชตเชฟเชถเซ‡เชจเชพ เชชเซเชฐเช•เชฐเชฃเชฎเชพเช‚ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเซ‡ เช†เช–เชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเชฎเชพเช‚ เชนเช‚เชฎเซ‡เชถเชพ เช†เช—เชณ-เชชเชพเช›เชณ เชœเชตเซเช‚ เชชเชกเชถเซ‡.

STM8 เชชเชฐ PWM เชจเซ‹ Atmega เชชเชฐ PWM เช•เชฐเชคเชพเช‚ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชซเชพเชฏเชฆเซ‹ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชธเซ€เชฎเชพ เชธเช‚เชฐเซ‡เช–เชฟเชค PWM
เชเช•เชพเช‰เชจเซเชŸ เช•เชจเซเชซเชฟเช—เชฐเซ‡เชถเชจ เชจเซ€เชšเซ‡เชฅเซ€ เช‰เชชเชฐ เชธเซเชงเซ€
เชœเซ‹ TIM_CR1 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ DIR เชฌเซ€เชŸ เชธเชพเชซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹ เชฌเซ‹เชŸเชฎ-เช…เชช เช•เชพเช‰เชจเซเชŸเชฟเช‚เช— เชธเช•เซเชฐเชฟเชฏ เช›เซ‡
เช‰เชฆเชพเชนเชฐเชฃ:
เช‰เชฆเชพเชนเชฐเชฃ เชชเซเชฐเชฅเชฎ PWM เชฎเซ‹เชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. PWM เชธเช‚เชฆเชฐเซเชญ เชธเช‚เช•เซ‡เชค OCiREF TIM1_CNT < TIM1_CCRi เชธเซเชงเซ€ เชŠเช‚เชšเซเช‚ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชจเชนเชฟเช‚เชคเชฐ เชคเซ‡ เชจเซ€เชšเซเช‚ เชธเซเชคเชฐ เชฒเซ‡ เช›เซ‡. เชœเซ‹ TIM1_CCRi เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเซ‚เชฒเซเชฏ เช‘เชŸเซ‹เชฒเซ‹เชก เชฎเซ‚เชฒเซเชฏ (TIM1_ARR เชฐเชœเชฟเชธเซเชŸเชฐ) เช•เชฐเชคเชพเช‚ เชตเชงเซ เชนเซ‹เชฏ, เชคเซ‹ OCiREF เชธเชฟเช—เซเชจเชฒ 1 เชชเชฐ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเซ‚เชฒเซเชฏ 0 เชนเซ‹เชฏ, เชคเซ‹ OCiREF เชถเซ‚เชจเซเชฏ เชชเชฐ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡....

เชฆเชฐเชฎเชฟเชฏเชพเชจ STM8 เชŸเชพเชˆเชฎเชฐ เช…เชชเชกเซ‡เชŸ เช‡เชตเซ‡เชจเซเชŸ เชชเชนเซ‡เชฒเชพ เชคเชชเชพเชธ เช•เชฐเซ‡ เช›เซ‡ เชฎเซ‚เชฒเซเชฏเชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเซ‹, เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชคเซเชฏเชพเชฐเซ‡ เชœ เชธเช‚เชฆเชฐเซเชญ เชธเช‚เช•เซ‡เชค เช‰เชคเซเชชเชจเซเชจ เช•เชฐเซ‡ เช›เซ‡. เชเชŸเชฎเซ‡เช—เชพเชจเซเช‚ เชŸเชพเชˆเชฎเชฐ เชชเซเชฐเชฅเชฎ เชธเซเช•เซเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเช›เซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเชฟเชฃเชพเชฎเซ‡ compare value == 0 เช†เช‰เชŸเชชเซเชŸ เช เชธเซ‹เชฏ เช›เซ‡, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เชฅเชตเซ‹ เชœเซ‹เชˆเช (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซ‡เชŸเชฟเช•เชฒเซ€ เชคเชฐเซเช•เชจเซ‡ เช‰เชฒเชŸเชพเชตเซ€เชจเซ‡).

เชคเซ‹ เช†เชชเชฃเซ‡ เชถเซเช‚ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช: 8-เชฌเซ€เชŸ PWM (AR == 255), เชจเซ€เชšเซ‡เชฅเซ€ เช‰เชชเชฐ เชธเซเชงเซ€ เช—เชฃเชคเชฐเซ€, เชธเชฐเชนเชฆ เชธเชพเชฅเซ‡ เชธเช‚เชฐเซ‡เช–เชฃ. เชฒเชพเช‡เชŸ เชฌเชฒเซเชฌ เช•เซ‡เชฅเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชšเชฟเชช เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เชนเซ‹เชตเชพเชฅเซ€, PWM เช เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เช†เช‰เชŸเชชเซเชŸ 0 (LED เชšเชพเชฒเซ) เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช. เชฎเซ‚เชฒเซเชฏเชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเซ‹ เช…เชจเซ‡ 1 เชชเช›เซ€.

เช…เชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช•เซ‡เชŸเชฒเชพเช• เชตเชฟเชถเซ‡ เชตเชพเช‚เชšเซเชฏเซเช‚ เช›เซ‡ PWM เชฎเซ‹เชก, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เช† เชถเชฌเซเชฆเชธเชฎเซ‚เชน (18.6.8 - TIMx_CCMR1) เชฎเชพเชŸเซ‡ เชธเช‚เชฆเชฐเซเชญ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพเชฎเชพเช‚ เชถเซ‹เชง เช•เชฐเซ€เชจเซ‡ เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐเชจเซเช‚ เชœเชฐเซ‚เชฐเซ€ เชฐเชœเชฟเชธเซเชŸเชฐ เชถเซ‹เชงเซ€เช เช›เซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
110: เชชเซเชฐเชฅเชฎ PWM เชฎเซ‹เชก - เชœเซเชฏเชพเชฐเซ‡ เชจเซ€เชšเซ‡เชฅเซ€ เช‰เชชเชฐ เชธเซเชงเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชชเซเชฐเชฅเชฎ เชšเซ‡เชจเชฒ เชธเช•เซเชฐเชฟเชฏ เชนเซ‹เชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ TIMx_CNT < TIMx_CCR1. เชจเชนเชฟเช‚เชคเชฐ, เชชเซเชฐเชฅเชฎ เชšเซ‡เชจเชฒ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช›เซ‡. [เชตเชงเซเชฎเชพเช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเชฎเชพเช‚ เชŸเชพเชˆเชฎเชฐ 1 เชฎเชพเช‚เชฅเซ€ เชเช• เชญเซ‚เชฒเชญเชฐเซ‡เชฒเซ€ เช•เซ‹เชชเซ€-เชชเซ‡เชธเซเชŸ เช›เซ‡] 111: เชฌเซ€เชœเซ‹ PWM เชฎเซ‹เชก - เชœเซเชฏเชพเชฐเซ‡ เชจเซ€เชšเซ‡เชฅเซ€ เช‰เชชเชฐ เชธเซเชงเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชชเซเชฐเชฅเชฎ เชšเซ‡เชจเชฒ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เชนเซ‹เชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ TIMx_CNT < TIMx_CCR1. เชจเชนเชฟเช‚เชคเชฐ, เชชเซเชฐเชฅเชฎ เชšเซ‡เชจเชฒ เชธเช•เซเชฐเชฟเชฏ เช›เซ‡.

LEDs MK เชธเชพเชฅเซ‡ เช•เซ‡เชฅเซ‹เชกเซเชธ เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เชนเซ‹เชตเชพเชฅเซ€, เชฌเซ€เชœเซ‹ เชฎเซ‹เชก เช…เชฎเชจเซ‡ เช…เชจเซเช•เซ‚เชณ เช†เชตเซ‡ เช›เซ‡ (เชชเชนเซ‡เชฒเซ‹ เชชเชฃ, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชนเชœเซ เชธเซเชงเซ€ เชคเซ‡ เชœเชพเชฃเชคเชพ เชจเชฅเซ€).

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชฌเซ€เชŸ 3 OC1PE: เชชเชฟเชจ 1 เชชเซเชฐเซ€เชฒเซ‹เชก เชธเช•เซเชทเชฎ เช•เชฐเซ‹
0: TIMx_CCR1 เชชเชฐ เชชเซเชฐเซ€เชฒเซ‹เชก เชฐเชœเชฟเชธเซเชŸเชฐ เช…เช•เซเชทเชฎ เช›เซ‡. เชคเชฎเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเชฎเชฏเซ‡ TIMx_CCR1 เชชเชฐ เชฒเช–เซ€ เชถเช•เซ‹ เช›เซ‹. เชจเชตเซเช‚ เชฎเซ‚เชฒเซเชฏ เชคเชฐเชค เชœ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.
1: TIMx_CCR1 เชชเชฐ เชชเซเชฐเซ€เชฒเซ‹เชก เชฐเชœเชฟเชธเซเชŸเชฐ เชธเช•เซเชทเชฎ เช›เซ‡. เชชเซเชฐเซ€เชฒเซ‹เชก เชฐเชœเชฟเชธเซเชŸเชฐเชจเซ‡ เชตเชพเช‚เชšเชตเชพ/เชฒเซ‡เช–เชตเชพเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ‹. เชชเซเชฐเซ€เชฒเซ‹เชกเซ‡เชก เชฎเซ‚เชฒเซเชฏ 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;

เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เชคเชพเชฐเชฃเซ‹ เช…เชจเซ‡ เชฌเซ€เชœเซเช‚ เชŸเชพเชˆเชฎเชฐ เชชเซ‹เชคเซ‡ เชœ เชšเชพเชฒเซ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡. เชชเซเชฐเชฅเชฎ เชธเชฎเชธเซเชฏเชพ เชฐเชœเซ€เชธเซเชŸเชฐ เชฆเซเชตเชพเชฐเชพ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡เชชเซเชšเชฐ/เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ‹ เชธเช•เซเชทเชฎ เช•เชฐเซ‹: เชคเซเชฏเชพเช‚ เชฌเซ‡, เชคเซเชฐเชฃ เชšเซ‡เชจเชฒเซ‹ เช…เชธเชฎเชชเซเชฐเชฎเชพเชฃ เชฐเซ€เชคเซ‡ เชซเซ‡เชฒเชพเชฏเซ‡เชฒเซ€ เช›เซ‡. เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เช เชชเชฃ เชถเซ€เช–เซ€ เชถเช•เซ€เช เช›เซ€เช เช•เซ‡ เชธเชฟเช—เซเชจเชฒเชจเซ€ เชงเซเชฐเซเชตเซ€เชฏเชคเชพเชจเซ‡ เชฌเชฆเชฒเชตเซ€ เชถเช•เซเชฏ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, PWM เชฎเซ‹เชก 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 เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชŸเชพเชˆเชฎเชฐ เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

#define TIM2_CR1   *(volatile uint8_t *)0x005300

TIM2_CR1 |= 1;

เชšเชพเชฒเซ‹ เชเชจเชพเชฒเซ‹เช—เชฐเชพเชˆเชŸ() เชจเซเช‚ เชเช• เชธเชฐเชณ เชเชจเชพเชฒเซ‹เช— เชฒเช–เซ€เช, เชœเซ‡ เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเชพเชŸเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชŸเชพเชˆเชฎเชฐเชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชถเซ‡. เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เช…เชจเซเชฎเชพเชจ เชฎเซเชœเชฌ เชจเชพเชฎ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เชจเซ‹เช‚เชงเชฃเซ€เช“ เช•เซ‡เชชเซเชšเชฐ/เชธเชฐเช–เชพเชตเซ‹, เชฆเชฐเซ‡เช• เชšเซ‡เชจเชฒ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชพเช‚เชจเชพ เชฌเซ‡ เช›เซ‡: TIM8_CCRxL เชฎเชพเช‚ เชฒเซ‹-เช“เชฐเซเชกเชฐ 2 เชฌเชฟเชŸเซเชธ เช…เชจเซ‡ TIM2_CCRxH เชฎเชพเช‚ เช‰เชšเซเชš-เช“เชฐเซเชกเชฐเชตเชพเชณเชพ. เช…เชฎเซ‡ 8-เชฌเซ€เชŸ PWM เชฌเชจเชพเชตเซเชฏเซเช‚ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡ เชซเช•เซเชค เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฌเชฟเชŸเซเชธ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡:

#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 เชจเชพ เชฎเชนเชคเซเชคเชฎ เชฎเซ‚เชฒเซเชฏ เชชเชฐ, เชธเชฟเช—เซเชจเชฒ เชเช• เชŸเชพเชˆเชฎเชฐ เชšเช•เซเชฐ เชฎเชพเชŸเซ‡ เชŠเช‚เชงเซ เช›เซ‡). เชเชฒเช‡เชกเซ€ เชฎเชพเชŸเซ‡ เช† เช•เซ‹เชˆ เชตเชพเช‚เชงเซ‹ เชจเชฅเซ€, เช…เชจเซ‡ เชธเชšเซ‡เชค เชฐเซ€เชกเชฐ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช…เชจเซเชฎเชพเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช เซ€เช• เช•เชฐเชตเซเช‚.

เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐ เชชเชฐ PWM เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชšเชพเชฒเซ‹ เชชเชนเซ‡เชฒเชพ เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€เช.

เชชเซเชฐเชฅเชฎ เชŸเชพเชˆเชฎเชฐ เชธเชฎเชพเชจ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชฌเชฐเชพเชฌเชฐ เชธเชฎเชพเชจ เชฌเชฟเชŸเซเชธ เชงเชฐเชพเชตเซ‡ เช›เซ‡ (เชคเซ‡ เชฎเชพเชคเซเชฐ เชเชŸเชฒเซเช‚ เชœ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชฌเชฟเชŸเซเชธ เชœเซ‡ เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐเชฎเชพเช‚ "เช†เชฐเช•เซเชทเชฟเชค" เชฐเชนเซ€ เช—เชฏเชพ เชนเชคเชพ เชคเซ‡ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเซ€ เช…เชฆเซเชฏเชคเชจ เชตเชธเซเชคเซเช“ เชฎเชพเชŸเซ‡ เชชเซเชฐเชฅเชฎเชฎเชพเช‚ เชธเช•เซเชฐเชฟเชฏเชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡). เชคเซ‡เชฅเซ€, เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เชธเชฎเชพเชจ เชฐเชœเชฟเชธเซเชŸเชฐเซเชธเชจเชพเช‚ เชธเชฐเชจเชพเชฎเชพเช‚ เชถเซ‹เชงเชตเชพ เช…เชจเซ‡ เช•เซ‹เชกเชจเซ€ เชจเช•เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡. เชธเชพเชฐเซเช‚, เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ เชตเชฟเชญเชพเชœเช•เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชฌเชฆเชฒเซ‹, เช•เชพเชฐเชฃ เช•เซ‡... เชชเซเชฐเชฅเชฎ เชŸเชพเชˆเชฎเชฐ เชฌเซ‡ เชชเชพเชตเชฐ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชฌเซ‡ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚ เชšเซ‹เช•เซเช•เชธ 16-เชฌเซ€เชŸ เชฎเซ‚เชฒเซเชฏ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡ Prescaler เช‰เชšเซเชš ะธ เชจเซ€เชšเชพ. เช…เชฎเซ‡ เชฌเชงเซเช‚ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡... เชชเซเชฐเชฅเชฎ เชŸเชพเชˆเชฎเชฐ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชถเซเช‚ เชฌเชพเชฌเชค เช›เซ‡?

เชŸเชพเชˆเชฎเชฐ 1 เชจเชพ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชฐเชœเชฟเชธเซเชŸเชฐเซเชธ เชตเชฟเชถเซ‡เชจเชพ เชธเชฎเช—เซเชฐ เชตเชฟเชญเชพเช—เชจเซ‡ เชœเซ‹เชˆเชจเซ‡ เชœ เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เชจเชฟเชฐเชพเช•เชฐเชฃ เชฒเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชœเซเชฏเชพเช‚ เช†เชชเชฃเซ‡ เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐ เชชเชพเชธเซ‡ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชเช•เชจเซ‡ เชถเซ‹เชงเซ€เช เช›เซ€เช. เชคเซเชฏเชพเช‚ เชนเชถเซ‡ 17.7.30 เชฌเซเชฐเซ‡เช• เชฐเชœเชฟเชธเซเชŸเชฐ (TIM1_BKR), เชœเซเชฏเชพเช‚ เช† เชฌเซ€เชŸ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชฎเซเช–เซเชฏ เช†เช‰เชŸเชชเซเชŸ เชธเช•เซเชทเชฎ เช•เชฐเซ‹

#define TIM1_BKR   *(volatile uint8_t *)0x00526D

TIM1_BKR = (1<<7);

เชคเซ‡ เชนเชตเซ‡ เช–เชพเชคเชฐเซ€ เชฎเชพเชŸเซ‡ เช›เซ‡, เช•เซ‹เชก เชคเซเชฏเชพเช‚.

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

STM8 เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธ

STM8 เชชเชฐ เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเชฟเช‚เช—

เชคเซเชฐเซ€เชœเซ‹ เชฎเชฟเชจเซ€-เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช†เช  RGB LEDs เชจเซ‡ PWM เชฎเซ‹เชกเชฎเชพเช‚ เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชจเซ‹ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เชตเชฟเชตเชฟเชง เชฐเช‚เช—เซ‹ เชฌเชคเชพเชตเชตเชพเชจเซ‹ เช›เซ‡. เชคเซ‡ เชเชฒเช‡เชกเซ€ เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเซ€เช‚เช—เชจเซ€ เชตเชฟเชญเชพเชตเชจเชพ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡, เชœเซ‡ เช เช›เซ‡ เช•เซ‡ เชœเซ‹ เชคเชฎเซ‡ เชเชฒเช‡เชกเซ€ เช–เซ‚เชฌ เชœ เชเชกเชชเชฅเซ€ เชšเชพเชฒเซ เช…เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเซ‡ เช…เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชธเชคเชค เชšเชพเชฒเซ เช›เซ‡ (เชฆเซเชฐเชทเซเชŸเชฟเชจเซ€ เชธเชพเชคเชคเซเชฏ, เชฆเซเชฐเชถเซเชฏ เชฆเซเชฐเชทเซเชŸเชฟเชจเซ€ เชœเชกเชคเชพ). เชฎเซ‡เช‚ เชเช•เชตเชพเชฐ เช•เชฐเซเชฏเซเช‚ Arduino เชชเชฐ เช†เชตเซเช‚ เช•เช‚เชˆเช•.

เช•เชพเชฐเซเชฏ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เช†เชจเชพ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

  • เชชเซเชฐเชฅเชฎ เช†เชฐเชœเซ€เชฌเซ€ เชเชฒเช‡เชกเซ€เชจเชพ เชเชจเซ‹เชกเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเชฏเซเช‚;
  • เชคเซ‡เชจเซ‡ เชชเซเชฐเช—เชŸเชพเชตเซ‹, เช•เซ‡เชฅเซ‹เชกเซเชธเชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เช•เซ‡เชคเซ‹ เชฎเซ‹เช•เชฒเซ€เชจเซ‡;
  • PWM เชšเช•เซเชฐเชจเชพ เช…เช‚เชค เชธเซเชงเซ€ เชฐเชพเชน เชœเซ‹เชตเซ€;
  • เชฌเซ€เชœเชพ เช†เชฐเชœเซ€เชฌเซ€ เชเชฒเช‡เชกเซ€เชจเชพ เชเชจเซ‹เชกเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเชฏเซเช‚;
  • เชคเซ‡เชจเซ‡ เชชเซเชฐเช—เชŸเชพเชตเซเชฏเซ‹...

เชธเชพเชฐเซเช‚, เชตเช—เซ‡เชฐเซ‡. เช…เชฒเชฌเชคเซเชค, เชธเซเช‚เชฆเชฐ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เช•เซ‡ เชเชจเซ‹เชก เชœเซ‹เชกเชพเชฏเซ‡เชฒ เชนเซ‹เชฏ เช…เชจเซ‡ LED เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ "เชธเชณเช—เชพเชตเซ‡เชฒ" เชนเซ‹เชฏ. เชธเชพเชฐเซเช‚, เช…เชฅเชตเชพ เชฒเช—เชญเช—. เช•เซ‹เชˆ เชชเชฃ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚, เช…เชฎเชพเชฐเซ‡ เชเช• เช•เซ‹เชก เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐเชจเซ€ เชคเซเชฐเชฃ เชšเซ‡เชจเชฒเซ‹เชฎเชพเช‚ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซเช‚ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชถเซ‡, เชœเซเชฏเชพเชฐเซ‡ UEV เชชเชนเซ‹เช‚เชšเซ€ เชœเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชฎเชจเซ‡ เชฌเชฆเชฒเชถเซ‡, เช…เชจเซ‡ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชนเชพเชฒเชฎเชพเช‚ เชธเช•เซเชฐเชฟเชฏ RGB LED เชจเซ‡ เชฌเชฆเชฒเชถเซ‡.

LED เชธเซเชตเชฟเชšเชฟเช‚เช— เช“เชŸเซ‹เชฎเซ‡เชŸเชฟเช• เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเชพเชฐเซ‡ "เชตเซ€เชกเชฟเชฏเซ‹ เชฎเซ‡เชฎเชฐเซ€" เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฎเชพเช‚เชฅเซ€ เช‡เชจเซเชŸเชฐเชชเซเชŸ เชนเซ‡เชจเซเชกเชฒเชฐ เชกเซ‡เชŸเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชถเซ‡. เช† เชเช• เชธเชฐเชณ เชเชฐเซ‡ เช›เซ‡:

uint8_t colors[8][3];

เชšเซ‹เช•เซเช•เชธ เชเชฒเช‡เชกเซ€เชจเซ‹ เชฐเช‚เช— เชฌเชฆเชฒเชตเชพ เชฎเชพเชŸเซ‡, เช† เชเชฐเซ‡เชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชฎเซ‚เชฒเซเชฏเซ‹ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เชนเชถเซ‡. เช…เชจเซ‡ เชšเชฒ เชธเช•เซเชฐเชฟเชฏ เชเชฒเช‡เชกเซ€เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชฐเชนเซ‡เชถเซ‡

uint8_t cnt;

เชกเซ‡เชฎเช•เซเชธ

เชฏเซ‹เช—เซเชฏ เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเชฟเช‚เช— เชฎเชพเชŸเซ‡, เช…เชฎเชจเซ‡, เชตเชฟเชšเชฟเชคเซเชฐ เชฐเซ€เชคเซ‡, CD74HC238 เชกเชฟเชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชกเชฟเชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเชฐ - เชเช• เชšเชฟเชช เชœเซ‡ เช‘เชชเชฐเซ‡เชŸเชฐเชจเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐเชฎเชพเช‚ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡ <<. เชคเซเชฐเชฃ เช‡เชจเชชเซเชŸ เชชเชฟเชจ (เชฌเชฟเชŸเซเชธ 0, 1 เช…เชจเซ‡ 2) เชฆเซเชตเชพเชฐเชพ เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชคเซเชฐเชฃ-เชฌเซ€เชŸ เชจเช‚เชฌเชฐ X เชซเซ€เชก เช•เชฐเซ€เช เช›เซ€เช, เช…เชจเซ‡ เชคเซ‡เชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚ เชคเซ‡ เช†เช‰เชŸเชชเซเชŸ เชจเช‚เชฌเชฐเชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‡ เช›เซ‡ (1<<X). เชšเชฟเชชเชจเชพ เชฌเชพเช•เซ€เชจเชพ เช‡เชจเชชเซเชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเชฎเช—เซเชฐ เชกเชฟเชเชพเช‡เชจเชจเซ‡ เชฎเชพเชชเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เช…เชฎเชจเซ‡ เช† เชšเชฟเชชเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชฎเชพเชคเซเชฐ เชฎเชพเช‡เช•เซเชฐเซ‹เช•เชจเซเชŸเซเชฐเซ‹เชฒเชฐเชจเซ€ เช•เชฌเชœเซ‡ เช•เชฐเซ‡เชฒเซ€ เชชเชฟเชจเชจเซ€ เชธเช‚เช–เซเชฏเชพ เช˜เชŸเชพเชกเชตเชพ เชฎเชพเชŸเซ‡, เชชเชฃ เชธเชฒเชพเชฎเชคเซ€ เชฎเชพเชŸเซ‡ เชชเชฃ - เชœเซ‡เชฅเซ€ เช†เช•เชธเซเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชถเช•เซเชฏ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชเชฒเช‡เชกเซ€ เชšเชพเชฒเซ เชจ เชฅเชพเชฏ เช…เชจเซ‡ MK เชฌเชฐเซเชจ เชจ เชฅเชพเชฏ. เชšเชฟเชชเชจเซ€ เช•เชฟเช‚เชฎเชค เชเช• เชชเซˆเชธเซ‹ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชคเชฎเชพเชฐเซ€ เชนเซ‹เชฎ เชฎเซ‡เชกเชฟเชธเชฟเชจ เช•เซ‡เชฌเชฟเชจเซ‡เชŸเชฎเชพเช‚ เชฐเชพเช–เชตเซ€ เชœเซ‹เชˆเช.

เช…เชฎเชพเชฐเซเช‚ CD74HC238 เช‡เชšเซเช›เชฟเชค LED เชจเชพ เชเชจเซ‹เชกเชจเซ‡ เชตเซ‹เชฒเซเชŸเซ‡เชœ เชธเชชเซเชฒเชพเชฏ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชฐเชนเซ‡เชถเซ‡. เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซเชตเชฟเชงเชพเชฏเซเช•เซเชค เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเชฎเชพเช‚, เชคเซ‡ P-MOSFET เชฆเซเชตเชพเชฐเชพ เช•เซ‰เชฒเชฎเชฎเชพเช‚ เชตเซ‹เชฒเซเชŸเซ‡เชœ เชธเชชเซเชฒเชพเชฏ เช•เชฐเชถเซ‡, เชชเชฐเช‚เชคเซ เช† เชกเซ‡เชฎเซ‹เชฎเชพเช‚ เชคเซ‡ เชธเซ€เชงเซเช‚ เชœ เชถเช•เซเชฏ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช…เชจเซเชธเชพเชฐ 20 mA เช–เซ‡เช‚เชšเซ‡ เช›เซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฎเชนเชคเซเชคเชฎ เชฐเซ‡เชŸเชฟเช‚เช—เซเชธ เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚. เชฅเซ€ เชกเซ‡เชŸเชพเชถเซ€เชŸ CD74HC238 เช…เชฎเชจเซ‡ เชชเชฟเชจเช†เช‰เชŸเซเชธ เช…เชจเซ‡ เช† เชšเซ€เชŸ เชถเซ€เชŸเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
H = เช‰เชšเซเชš เชตเซ‹เชฒเซเชŸเซ‡เชœ เชธเซเชคเชฐ, L = เชจเซ€เชšเชพ เชตเซ‹เชฒเซเชŸเซ‡เชœ เชธเซเชคเชฐ, X - เช•เชพเชณเชœเซ€ เชจเชฅเซ€

เช…เชฎเซ‡ E2 เช…เชจเซ‡ E1 เชจเซ‡ เช—เซเชฐเชพเช‰เชจเซเชก เชธเชพเชฅเซ‡, E3, A0, A1 เช…เชจเซ‡ A3 เชจเซ‡ PD5, PC3, PC4 เช…เชจเซ‡ PC5 เชจเซ‡ STM8 เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€เช เช›เซ€เช. เช‰เชชเชฐเชจเชพ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชจเซ€เชšเชพ เช…เชจเซ‡ เช‰เชšเซเชš เชฌเช‚เชจเซ‡ เชธเซเชคเชฐเซ‹ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเซ‡ เช† เชชเชฟเชจเชจเซ‡ เชชเซเชถ-เชชเซเชฒ เชชเชฟเชจ เชคเชฐเซ€เช•เซ‡ เช—เซ‹เช เชตเซ€เช เช›เซ€เช.

PWM

เชฌเซ€เชœเชพ เชŸเชพเชˆเชฎเชฐ เชชเชฐ PWM เช เช…เช—เชพเช‰เชจเซ€ เชตเชพเชฐเซเชคเชพเชจเซ€ เชœเซ‡เชฎ เชฌเซ‡ เชคเชซเชพเชตเชคเซ‹ เชธเชพเชฅเซ‡ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡:

เชชเซเชฐเชฅเชฎ, เช†เชชเชฃเซ‡ เชตเชฟเช•เซเชทเซ‡เชช เชšเชพเชฒเซ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช‡เชตเซ‡เชจเซเชŸ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‹ (UEV) เชœเซ‡ เชเช• เชซเช‚เช•เซเชถเชจเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเชถเซ‡ เชœเซ‡ เชธเช•เซเชฐเชฟเชฏ LED เชจเซ‡ เชŸเซ‰เช—เชฒ เช•เชฐเซ‡ เช›เซ‡. เช† เชฌเซ€เชŸ เชฌเชฆเชฒเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชชเชกเซ‡เชŸ เชตเชฟเช•เซเชทเซ‡เชช เชธเช•เซเชทเชฎ เช•เชฐเซ‹ เช•เชนเซ‡เชตเชพเชจเชพ เชจเชพเชฎ เชธเชพเชฅเซ‡ เชฐเชœเชฟเชธเซเชŸเชฐเชฎเชพเช‚

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
เชตเชฟเช•เซเชทเซ‡เชช เชธเช•เซเชทเชฎ เชฐเชœเซ€เชธเซเชŸเชฐ

#define TIM2_IER   *(volatile uint8_t *)0x005303

//enable interrupt
TIM2_IER = 1;

เชฌเซ€เชœเซ‹ เชคเชซเชพเชตเชค เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเซ€เช‚เช—เชจเซ€ เช˜เชŸเชจเชพ เชธเชพเชฅเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชญเซ‚เชคเชฟเชฏเชพ - เชกเชพเชฏเซ‹เชกเชจเซ€ เชชเชฐเซ‹เชชเชœเซ€เชตเซ€ เช—เซเชฒเซ‹. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡ เช เชนเช•เซ€เช•เชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชฆเซ‡เช–เชพเชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชŸเชพเชˆเชฎเชฐ, เชฏเซเช‡เชตเซ€ เชชเชฐ เชตเชฟเช•เซเชทเซ‡เชช เชฒเชพเชตเซเชฏเชพ เชชเช›เซ€, เชŸเชฟเช• เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡, เช…เชจเซ‡ เชŸเชพเชˆเชฎเชฐ เชชเชฟเชจ เชชเชฐ เช•เช‚เชˆเช• เชฒเช–เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชตเชฟเช•เซเชทเซ‡เชชเชฟเชค เชนเซ‡เชจเซเชกเชฒเชฐ เชชเชพเชธเซ‡ เชเชฒเช‡เชกเซ€ เชธเซเชตเชฟเชš เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เชจเชฅเซ€. เช†เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชคเชฐเซเช•เชจเซ‡ เช‰เชฒเชŸเชพเชตเชตเซ‹ เชชเชกเชถเซ‡ (0 = เชฎเชนเชคเซเชคเชฎ เชคเซ‡เชœ, โ€‹โ€‹255 = เช•เช‚เชˆเชชเชฃ เชชเซเชฐเช•เชพเชถเชฟเชค เชจเชฅเซ€) เช…เชจเซ‡ เช…เชคเซเชฏเช‚เชค เชซเชฐเชœ เชšเช•เซเชฐ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‡ เชŸเชพเชณเชตเชพ เชชเชกเชถเซ‡. เชคเซ‡. เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ UEV เชชเช›เซ€ LEDs เชเช• PWM เชšเช•เซเชฐ เชฎเชพเชŸเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฌเชนเชพเชฐ เชœเชพเชฏ เช›เซ‡.

เชฌเชฆเชฒเชพเชคเซ€ เชงเซเชฐเซเชตเซ€เชฏเชคเชพ:

//set polarity 
    TIM2_CCER1 |= (CC1P | CC2P);
    TIM2_CCER2 |= CC3P;

r, g เช…เชจเซ‡ b เชจเซ‡ 255 เชชเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซเช‚ เชŸเชพเชณเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเซ‡เชฎเชจเซ‡ เช‰เชฒเชŸเชพเชตเชพเชจเซเช‚ เชฏเชพเชฆ เชฐเชพเช–เซ‹.

เชตเชฟเช•เซเชทเซ‡เชช เชชเชพเชกเซ‡ เช›เซ‡

เชตเชฟเช•เซเชทเซ‡เชชเชจเซ‹ เชธเชพเชฐ เช เช›เซ‡ เช•เซ‡ เชšเซ‹เช•เซเช•เชธ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚ เชšเชฟเชช เชฎเซเช–เซเชฏ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชฌเชพเชนเซเชฏ เช•เชพเชฐเซเชฏเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‡ เช›เซ‡. เชŸเชพเชˆเชฎเชฐ เชธเชนเชฟเชค เชฌเชพเชนเซเชฏ เช…เชฅเชตเชพ เช†เช‚เชคเชฐเชฟเช• เชชเซเชฐเชญเชพเชตเซ‹เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹ เชฅเชพเชฏ เช›เซ‡.

เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชธเซŒเชชเซเชฐเชฅเชฎ เชเชธเชŸเซ€ เชตเชฟเชเซเชฏเซเช…เชฒ เชกเซ‡เชตเชฒเชชเชฎเชพเช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฌเชจเชพเชตเซเชฏเซ‹ เชนเชคเซ‹, เช‰เชชเชฐเชพเช‚เชค main.c เช…เชฎเชจเซ‡ เชเช• เชฐเชนเชธเซเชฏเชฎเชฏ เชซเชพเช‡เชฒเชตเชพเชณเซ€ เชตเชฟเชจเซเชกเซ‹ เชฎเชณเซ€ เช›เซ‡ stm8_interrupt_vector.c, เช†เชชเชฎเซ‡เชณเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชธเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช›เซ‡. เช† เชซเชพเช‡เชฒเชฎเชพเช‚, เชฆเชฐเซ‡เช• เชตเชฟเช•เซเชทเซ‡เชชเชจเซ‡ เช•เชพเชฐเซเชฏ เชธเซ‹เช‚เชชเซ‡เชฒ เช›เซ‡ NonHandledInterrupt. เช†เชชเชฃเซ‡ เช†เชชเชฃเชพ เช•เชพเชฐเซเชฏเชจเซ‡ เช‡เชšเซเช›เชฟเชค เชตเชฟเช•เซเชทเซ‡เชช เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชกเซ‡เชŸเชพเชถเซ€เชŸเชฎเชพเช‚ เชตเชฟเช•เซเชทเซ‡เชช เชตเซ‡เช•เซเชŸเชฐเชจเซเช‚ เช•เซ‹เชทเซเชŸเช• เช›เซ‡, เชœเซเชฏเชพเช‚ เช…เชฎเชจเซ‡ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‡ เชถเซ‹เชงเซ€เช เช›เซ€เช:

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹
13 TIM2 เช…เชชเชกเซ‡เชŸ/เช“เชตเชฐเชซเซเชฒเซ‹
14 TIM2 เช•เซ‡เชชเซเชšเชฐ/เชธเชฐเช–เชพเชฎเชฃเซ€

เช…เชฎเชพเชฐเซ‡ UEV เชชเชฐ LED เชฌเชฆเชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเชจเซ‡ เช‡เชจเซเชŸเชฐเชชเซเชŸ #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;
}

เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡. เช† เชเชธเซ‡เชฎเซเชฌเชฒเชฐ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ rim - เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชถเซ‹เชงเชตเชพเชจเซเช‚ เชฐเชนเซ‡เชถเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฎเซ‡เชจเซเชฏเซเช…เชฒ:

//enable interrupts
_asm("rim");

เช…เชจเซเชฏ เชเชธเซ‡เชฎเซเชฌเชฒเชฐ เช†เชฆเซ‡เชถ เช›เซ‡ sim - เชตเชฟเช•เซเชทเซ‡เชชเซ‹ เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ "เชตเชฟเชกเชฟเชฏเซ‹ เชฎเซ‡เชฎเชฐเซ€" เชชเชฐ เชจเชตเชพ เชฎเซ‚เชฒเซเชฏเซ‹ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เช“ เชฌเช‚เชง เชนเซ‹เชตเชพ เชœเซ‹เชˆเช, เชœเซ‡เชฅเซ€ เช–เซ‹เชŸเซ€ เช•เซเชทเชฃเซ‡ เช‰เชฆเซเชญเชตเชคเชพ เชตเชฟเช•เซเชทเซ‡เชช เชเชฐเซ‡เชจเซ‡ เชฌเช—เชพเชกเซ‡ เชจเชนเซ€เช‚.

เชฌเชงเชพ เช•เซ‹เชก - GitHub เชชเชฐ.

เชกเซ‡เชŸเชพเชถเซ€เชŸเซเชธ 2 เชตเชพเช‚เชšเซ‹: STM32 เชชเชฐ SPI; STM8 เชชเชฐ PWM, เชŸเชพเชˆเชฎเชฐ เช…เชจเซ‡ เชตเชฟเช•เซเชทเซ‡เชชเซ‹

เชœเซ‹ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เช•เซ‹เชˆเชจเซ‡ เช† เชฒเซ‡เช– เช‰เชชเชฏเซ‹เช—เซ€ เชฒเชพเช—เซ‡, เชคเซ‹ เชฎเซ‡เช‚ เชคเซ‡ เชจเชฟเชฐเชฐเซเชฅเช• เชจเชฅเซ€ เชฒเช–เซเชฏเซเช‚. เชฎเชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เช…เชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชจเช‚เชฆ เชฅเชถเซ‡, เชนเซเช‚ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‹ เชœเชตเชพเชฌ เช†เชชเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชคเซเชจ เช•เชฐเซ€เชถ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹