你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM8-SO8-DISCO】+ (1)基本定时器四中点灯

[复制链接]
damiaa 发布时间:2019-1-22 11:10
本帖最后由 damiaa 于 2019-1-23 15:42 编辑 * k- C; r: O6 A6 e* z4 t

9 u) ]' c* T5 Q+ m0 X【STM8-SO8-DISCO】+ 基本定时器四中点灯  & y$ j, _; h0 G
小8芯的STM8S001 只有TIM1,2,4。 TIM4为基本定时器。只有些基本功能。用它最好理解了。
# W6 K& m0 o0 [) F. [& S$ j! k5 F& F+ A; q先看一下原理图:
" w; V1 w/ d) V3 n0 x/ r/ t7 ^( y+ S  r3 x- q) r
; }# w4 Y: F% ]' J! k# D
3 W% h1 h& Z* M- V3 a" o9 |4 C
QQ图片20190122164711.png
" w3 m" A2 B1 O+ nIO口1 PA1/PD6
3 {6 |7 _8 ?4 V2 LIO口5 PA3/PB5- s* L5 c) Y6 ~/ ~; m
IO口6 PB4" P4 S+ J- M: W- X8 y; e2 J
IO口7 PC3/PC4/PC5 上面四个IO口可以用
5 U! o$ B+ S- q& m5 TIO口8 SWID不能占用
& r3 C  E) m  t! x4 J9 ~, }IO口7用到按键了,IO口5用到LED1了。
6 ]6 I/ P$ i5 f* T可以根据情况使用。
$ }5 ^9 a7 E$ A/ [% x! w
$ ]& ~+ t1 Y9 I) D- J, d; b! E/ N" t下面开始! ]) M6 a3 m2 \8 r) }: E9 F% ~! b

' P; p6 W3 J, k1 z# Q: p3 g0 g' [: @8 f
  z' }' {. ]6 k0 p4 u: Z4 z1,安装IAR开发环境。
0 K1 ?. R! H: l2 W# y2 ]2,申请一个免费的lisensee。
5 m" S9 P2 \8 r9 o3 K& h8 I/ l$ q4 G3,建立stm8s001test目录,在它下面建立:project,user,libraries三个目录。6 G4 d5 `7 ~9 I2 w9 u
QQ图片20190122110421.png 5 X9 e0 k# h- L7 B4 D7 O
$ A( R  @) t' L' _6 z- Q( T2 g3 H
4,拷贝一个STM8的工程模板到project目录。* c' h! D( x, p9 @; o+ @( C
5,拷贝main.c stm8s_conf.h stm8s_it.h stm8s_it.c到user目录。2 S! o3 l8 H: O
6,拷贝库文件到libraries目录。5 p0 s3 D/ K- M- I2 F! s
7,加入文件到工程。(如果以前有删除后加入): QQ图片20190122110700.png 5 v) n" N+ U1 r5 l, K; }) `  Z
8,配置头文件路径。) B) R3 |; |1 y
QQ图片20190122142628.png
% t0 i9 j) S" h+ C" N/ l3 H9,main.c 加入
4 N9 y+ }8 e5 _7 Z
  1. /* Includes ------------------------------------------------------------------*/2 m: x3 D8 V3 C/ l# q
  2. #include "stm8s.h"
    : N9 Y4 Y3 F. A3 }( K2 v: N6 D0 e! D
  3. #define LED_GPIO_PORT  (GPIOA); ^2 I# g' ]/ R) y9 f6 I
  4. #define LED_GPIO_PINS  (GPIO_PIN_3)6 i  o: g' C1 }( z" e
  5. #define TIM4_PERIOD       124- f9 {1 v" Q" E
  6. void Delay (uint16_t nCount);( o# A) w; q7 j6 S2 t, w
  7. static void TIM4_Config(void);
    ( T2 M- x+ a' c- H% U3 c5 e+ _! d
  8. void LED1_Toggle();$ |0 e0 u9 V' A' z! F0 b
  9. void main(void){
    $ e% N: O: z- c
  10.   /* Initialize I/Os in Output Mode */
    7 ^; ]% Q+ j' A  g
  11.   GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_MODE_OUT_PP_LOW_FAST);
    & |1 Y2 j& g* y6 _: U
  12. /* TIM4 configuration -----------------------------------------*/3 m: x. X3 \3 K! M: ]7 r
  13.   TIM4_Config();
    0 c# M% Z, v! K0 ]* d8 x
  14.   while (1): z6 l# [0 Q/ {- i) m* q
  15.   {
    * i/ E( p& v6 ^5 T( I
  16.   }
    6 T" j2 k6 U5 M# P
  17. }7 _9 k+ d3 y7 j. G) u0 p6 X
  18. void Delay(uint16_t nCount){( K5 h# H9 z9 |; r5 Z- P4 o
  19.   while (nCount != 0){   nCount--; }
    + C8 _/ ]- w+ [
  20. }* i% K; K: y3 O+ z
  21. static void TIM4_Config(void)
    " Y9 ~( D# V- c/ x0 ^7 O- `. k' K
  22. {; s' D) L, ^4 o' [7 @' U
  23.   /* TIM4 configuration:
    , o4 i8 T4 T2 h: ^" P4 b
  24.    - TIM4CLK is set to 16 MHz, the TIM4 Prescaler is equal to 128 so the TIM1 counter
    3 U" r( w+ f! e( X. m4 {  q
  25.    clock used is 16 MHz / 128 = 125 000 Hz, a* s( ~8 p8 z. A( y/ ]
  26.   - With 125 000 Hz we can generate time base:6 f9 |7 Q" f6 E- ~# N
  27.       max time base is 2.048 ms if TIM4_PERIOD = 255 --> (255 + 1) / 125000 = 2.048 ms9 z# ^/ a% o2 w) v/ I0 F! m6 Y
  28.       min time base is 0.016 ms if TIM4_PERIOD = 1   --> (  1 + 1) / 125000 = 0.016 ms8 d1 H; O* @0 ]
  29.   - In this example we need to generate a time base equal to 1 ms
    # K$ h' O8 w. f: p+ F/ F% ?8 V3 B
  30.    so TIM4_PERIOD = (0.001 * 125000 - 1) = 124 */
    " s) I: |& M# G% l7 R+ t
  31.   /* Time base configuration */
    ) O( F1 J& g- b( F
  32.   TIM4_TimeBaseInit(TIM4_PRESCALER_128, TIM4_PERIOD);
    ( _2 @- ?9 f0 x% A' W
  33.   /* Clear TIM4 update flag */
    1 A! O5 j; W, [8 Y9 f
  34.   TIM4_ClearFlag(TIM4_FLAG_UPDATE);5 o$ F% o, c, H, n' |
  35.   /* Enable update interrupt */# C% a7 I# s7 s! f
  36.   TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE); 0 `; H: O+ l; z5 b# c# A
  37.   /* enable interrupts */5 K* j3 k. `, B& {* v: a* K
  38.   enableInterrupts();
    4 C, Z3 ?& A0 @, A5 P$ O* J% k
  39.   /* Enable TIM4 */
    4 _* V! J; y; X6 X
  40.   TIM4_Cmd(ENABLE);) }( |6 ~9 _. [6 R' h' o9 k4 E
  41. }
    & S) P6 L; ]& F* K
  42. void LED1_Toggle(){
    8 e) C- Z. [  D) V2 M
  43.    GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);9 l, M9 F" x6 X" E1 Y2 ]" h" t
  44. }
复制代码
stm8s_it.c加入
% L' o. [; O3 G( \3 `9 z
  1. extern void LED1_Toggle();
    ! ^6 L/ J# n5 j
  2. ...) w9 e4 @( b* V$ N& e
  3. ...
    " o9 Q" P2 r* P0 V
  4. INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 23)' l2 U' F) d% t5 @  L
  5. {
    , ~- `3 f* h; k+ l
  6.   /* In order to detect unexpected events during development,1 [# a; H/ M+ [$ a8 R2 W, [
  7.      it is recommended to set a breakpoint on the following instruction.
    ' D. K$ V1 w$ m
  8.   */( a0 ^; w# h: Z3 f9 h8 p
  9.   static uint16_t tims=0;
    2 Z5 m. c4 e1 t$ h  r2 m: X/ a
  10.   tims++;5 `! c% B* Q$ i, h! ?  q
  11.   if(tims >1000)
    ) f& U, l; ^* a% V- G/ J- t
  12.   { & k9 D0 Y4 W' R! {3 J
  13.     tims =0;
    ( V7 l3 c+ i/ J/ d# N; c/ P% E9 G0 ~
  14.     LED1_Toggle();
    * B9 _- n+ e" c1 ]$ J1 G
  15.   }2 T$ u, [+ F* p# t
  16. }
复制代码

3 u; B/ e* r3 P& c5 N, A$ q; ]10,编译调试:
/ E0 E  A0 }& n/ ~+ u' x 微信图片_20190122102947.jpg ' @( O' T' n9 M! U0 v' v
微信图片_20190122102956.jpg
8 a  m& z9 W* _, A11,文件:
5 B$ W3 Q, \) v+ Z% u8 G, U8 ? stm8s001test.zip (2.91 MB, 下载次数: 5)
收藏 1 评论4 发布时间:2019-1-22 11:10

举报

4个回答
qiangtech 回答时间:2019-1-22 14:58:52
下次申请到开发板了来试试。
damiaa 回答时间:2019-1-22 15:38:15
qiangtech 发表于 2019-1-22 14:58
- V5 `0 P( _% Z1 B2 k下次申请到开发板了来试试。

; `9 V7 l& v8 q- Z+ E: G: i7 Y 好 希望能申请到。
yuandm1 回答时间:2020-12-10 17:10:44
楼主你好,我使用的STM8L001J3,按照您的例程,测试不能进入定时器中断呢,请指点,谢谢
damiaa 回答时间:2021-1-12 09:27:14
yuandm1 发表于 2020-12-10 17:10+ j2 X6 ~) v" k% u3 J- V; D
楼主你好,我使用的STM8L001J3,按照您的例程,测试不能进入定时器中断呢,请指点,谢谢 ...

  e, D# L8 P' x) `我这个是STM8S001 。STM8L001J3是不是要换一下几个文件?没试过。留意要换的 stm8s_conf.h stm8s_it.h stm8s_it.c 还有库。或者自己找一下。不记得了。你自己看看吧。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版