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

STM8-SO8-DISCO -- 14、STM8L001 GPIO测试

[复制链接]
TLLED 发布时间:2019-2-25 16:05
: s+ y' J$ P; Y+ H
    * y& X# U4 b" K7 i' h
    通过开发板的上的SB4,SB5,SB6跳线来选择STM8L001芯片,STM8L050和STM8L001都属于STM8L系列芯片,所有工程文件就还是用之前的STM8L050创建的工程文件,通过GPIO驱动来验证工程的可运行性。
# C2 a7 i7 c6 v$ M6 z( A- _/ T" o! G$ `$ N% r  u; I
& e' M9 q/ G8 \7 W; A" f
    一、硬件部分, k2 @; C. K- b* s
) k/ T7 F9 U1 B; O% ]' \
4 c( F" B2 s7 g, s
    使用PB5引脚来驱动LED。6 D: i8 q/ v& Z* y$ @
    2253.png / {7 j: P* ~& E6 _4 D# u8 I
    9 N3 `; w8 g- A% d6 G
    二、程序部分8 L) [; I6 F9 I

4 x0 u% R  V- m" B( }
( s1 y" |! s% H0 E- \" U
    2.1、在工程文件中,选择STM8L001芯片型号
3 Q$ I( h1 l  }7 J    2254.png ) v8 D. \! k7 x, e$ |
    ' ~; m, \% z: W, |7 }
     2.2、程序代码
8 ^8 ~( S7 V; R; m3 W" S0 u  S7 A/ b$ |

$ H( G% a, p. M) x     2.2.1、LED代码
4 S! t/ b+ x. D9 B% D1 T
  1. //led/c. M' d* y" s. e7 X* l9 B
  2. #include "stm8l15x.h"% v: R( \; j. g. f; W+ I
  3. #include "led.h"
    ) d" ]$ g8 o- Y9 R/ }

  4. 3 U* c1 |4 a: b1 p. S( y/ f
  5. void led_init(void)
    + M; U6 H, {# l
  6. {3 u" k6 Q* ]! s: I: D0 K. w
  7.   GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);4 K0 O5 X0 F( o, e
  8. }" c( V$ E0 G0 T' n

  9. 9 _  A1 k4 v9 ]/ r1 a% S
  10. //led.h
    ; s4 d7 P4 k# w3 Y8 P
  11. #ifndef __LED_H
      j( N; W8 L) t/ }- _" b/ z
  12. #define __LED_H6 _* E  e2 C$ {

  13. 8 p5 ^: K  q$ o: ?! a
  14. #define LED_GPIO_PORT  (GPIOB)
    ' e3 I5 I5 J! b2 ]% c
  15. #define LED_GPIO_PINS  (GPIO_Pin_5) & f; h2 H5 P% V8 a0 U
  16. 2 @7 U/ A- M7 e+ A) F, F
  17. #define led_tog() GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS)$ g) u5 z' q0 E! O
  18. " A" K* W: ]/ S; I$ F0 k# h, d
  19. void led_init(void);: f: c) v+ E5 ]$ B4 e( F/ ]
  20. # e' h& @' ?* z7 O  R
  21. #endif
复制代码
2 w. {9 E. p, _: Z' i6 `: G7 B
    2.2.2、主程序
9 J( T) g4 p( q; `' p. a7 R  Q8 \
  1. void main(void)
    ) E/ k- }( r$ W: G4 P. o
  2. {
    : o' S0 j+ j) @6 |- p
  3.   CLK_Config();           //时钟初始化' v- a: D" q8 z) C$ [
  4.   
    , a) G! \  u8 [
  5.   Delay(0x2fffff);        //延时5S4 l$ J0 o0 z& h/ l
  6.   
    + a% ]% W0 }1 J3 @) {% [0 \; ]
  7.   led_init();             //led初始化% O+ H: W4 R; k! A5 T
  8.   ! Y/ x+ D; |+ B5 k, k+ Z" G
  9.   while (1)- g5 M7 U# A' W" o" O4 p- @
  10.   {  ]$ c4 Y/ u% ~! t
  11.     led_tog();            //LED取反             ) E4 F' d+ E9 J$ b
  12.     Delay(0xffff);( G9 [% F# b& E5 F1 p
  13.   }% H# B  b* p8 T0 ?  P
  14. }
复制代码

+ R5 I3 B! T7 y+ s4 B% B8 H' m    三、执行结果6 I# F4 g2 ~; D; X0 u! y/ }
) P* |3 H! |! Z( C# B
1 b5 T" m' t, \, g+ e% w" {
    3.1、在原来的工程文件仿真时,程序执行到. `# D% r9 n4 j5 A$ u# Z
            CLK_Config();           //时钟初始化2 G4 @. |5 B6 b5 g
  1. //时钟初始化1 D6 g, U# I! z6 T# A; f7 F' x' @- F
  2. static void CLK_Config(void)
    1 P  h3 Y2 u# N
  3. {   
    " T  F" g, T& ]1 ]/ b
  4.     /* Select HSI as system clock source */
    + T/ O; Q; i7 g& C
  5.     CLK_SYSCLKSourceSwitchCmd(ENABLE);: q: r) @8 @4 S6 Z- q2 f
  6.     CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);' {/ {3 B7 f5 f
  7.     /* system clock prescaler: 1*/; f( `# F, k: t
  8.     CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
    / ~# [& W5 r) b4 u
  9.     //while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)
      n4 e3 x  Z* N, f8 k( U5 o+ C
  10.     //{}   
    3 V2 ?) f( e1 r3 u) J% v$ _
  11. }
复制代码
; Y- @5 ?! Z5 N$ m8 A" O2 D
           这个函数while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI){} 位置跳转转不出来,把这个函数屏蔽掉以后,程序可以运行下去,后面再看看具体原因是什么。9 f) }1 N; n' }! J! ?; N8 |
    ( ?* q( z, Y) F$ y4 ^$ C+ c7 F; N
    3.2、运行的视频
; I$ d+ ^# _& Q, ^4 ?' P3 ^8 L* U. z    2254.gif
9 {9 `" z. S+ {6 k0 v% A( A5 n; E& ?+ ^

2 Q; G: A, B! x4 P; x, ]- q- Y, D! M" t1 U2 [7 w3 i" t0 Z
& ^& R3 s4 H& y2 |" x
    stm8l001芯片运行正常。
6 x; O) ^& {0 s/ D+ {1 y/ m
9 ]8 Y8 t; t2 P# ^. q. @7 D

* n5 a8 j* d. i
/ v; W% T7 ?5 v3 C# c

3 g" P, [4 s% z3 ]
. U6 h: v  f2 q6 l( d9 z) g

5 _" I' R- ~& H
; E# K: f- [1 \4 p/ c3 q6 }
, B' `% p) A7 Z8 Z. C; J4 O" l
" ?3 k, I' _% E& S
1 收藏 1 评论2 发布时间:2019-2-25 16:05

举报

2个回答
shishangyangyan 回答时间:2020-3-13 14:51:14
TLLED您好,劳烦问下您用的是IAR吗?什么版本?我这边下载的3.10和3.11里都没有STM8L001J3,如您上面的截图,Target->device里没有STM8L001J3,是不是IAR版本不对?
shishangyangyan 回答时间:2020-3-13 14:57:39
TLLED您好,我是STM8开发的新手,最近有一个项目打算选用STM8L001J3的型号,发现最新的IAR里在选芯片型号时都没有这个型号,您是用的什么版本?还是其他什么工具呢?劳烦指教一下,谢谢
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版