经不住诱惑,今天开始玩STM8!麻烦过来人进来讲讲心得

2019-12-26 18:53发布

1、买的STM8 value line discovery板刚到手,从最简单的STM8S003开始吧。
2、下载了STVD/COSMIC。COSMIC_32K坛里有和谐好的,不过要先下载原版安装。
3、争取今晚把LED点亮。
4、其实我很看好STM8L152,之后要测试一下耗电和ADC性能。
5、纯业余玩的,还没想好弄点啥……
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
77条回答
millwood0
2019-12-29 21:13
to blink an led, you will need to introduce delay.

here is the software delay routines I use:

delay.h:


  1. #ifndef __DELAY_H
  2. #define __DELAY_H

  3. void delay(unsigned char dly);

  4. void delay_us(unsigned short us);

  5. void delay_ms(unsigned short ms);

  6. #endif //delay_h
复制代码delay.c


  1. //simple example
  2. /* Includes ------------------------------------------------------------------*/
  3. //#include <iostm8.h>
  4. //#include <stdio.h>                          //because we used printf
  5. #include "gpio.h"                                //we use _nop_(), F_CPU
  6. #include "delay.h"                                //we use software delays
  7. /* Global variables ----------------------------------------------------------*/
  8. //cpu running at 2Mhz

  9. //#define _DLY_MS                                158                                //delay for EWAVR (USB1286)
  10. //#define _DLY_MS                                40                                //delay for WINAVR debug mode(USB1286, no optimization)
  11. //#define _DLY_MS                                158                                //delay for WINAVR release (USB1286)
  12. //#define _DLY_MS                                120                                //delay for C51
  13. //#define _DLY_MS                                329                                //delay for avr
  14. //#define _DLY_MS                                160                                //delay for PIC18F46K20 @ 4Mhz
  15. //#define _DLY_MS                                200                                //delay for PIC16F886
  16. //#define _DLY_MS                                984                                //delay for LPC2106
  17. //#define _DLY_MS                                226                                //lpc1343 on keil
  18. #define _DLY_MS                                        215                                //stm8s@2Mhz

  19. //delay routines
  20. void delay(unsigned char dly) {              //waste some cycle
  21.         while (dly--)
  22.                 continue;
  23. }

  24. //delay_us(1000) = 10ms
  25. //delay_us(1) = 10us
  26. void delay_us(unsigned short us) {            //delay a us
  27.         delay(us);                                                //delay the lsb
  28.         us = us >> 8;                                        //retain the msb
  29.         while (us--) delay(0xff);                //delay the msb
  30. }

  31. void delay_ms(unsigned short ms) {        //delay ms
  32.         while (ms--) delay_us(_DLY_MS * (F_CPU / 2000000ul));
  33. }
复制代码

一周热门 更多>