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

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

[复制链接]
TLLED 发布时间:2019-2-25 16:05

4 u* G! Q7 {( V8 B   
: [# Z* q  W# t% [2 J    通过开发板的上的SB4,SB5,SB6跳线来选择STM8L001芯片,STM8L050和STM8L001都属于STM8L系列芯片,所有工程文件就还是用之前的STM8L050创建的工程文件,通过GPIO驱动来验证工程的可运行性。$ O; ^. w  Q% o7 y+ s4 v6 M" ~, G

9 G. m/ L1 P3 F

' J4 S7 t0 A, z5 {* i, M    一、硬件部分
* a+ ~5 T% C- u# `$ ]' p2 l
% M; h; }, g0 B/ G  }6 P/ s
6 W% ~1 O4 J: o  N2 X+ U8 S: @
    使用PB5引脚来驱动LED。
% g" j6 Z4 T% `    2253.png
; K+ y% M" \- m( e: }; `6 l. @    ; t) h8 l8 y# G. q2 w2 M, @
    二、程序部分
6 p6 x4 D6 E) h1 I0 {. ]
3 `. V6 ^% Q4 S4 v  w4 n$ a
. h8 x  P/ R" z6 H6 O( D+ v2 a9 o% `
    2.1、在工程文件中,选择STM8L001芯片型号: h/ l& h) d+ z
    2254.png
& P% c1 [9 M/ l$ E6 s. z      X# W# C+ M$ `# f( ^
     2.2、程序代码
6 F& V' t/ C9 @3 k7 E. k$ n, }5 C1 p% L5 B& E; ?

5 H( i  Y( W9 e* g     2.2.1、LED代码 2 L3 |: o" g3 r% x7 l
  1. //led/c0 B$ h! p' G, z$ @
  2. #include "stm8l15x.h": H  s2 |1 m/ ~0 X! g- P* O" b
  3. #include "led.h"
    : E/ q" ]! K. M9 `  @

  4. / f# w. F' n- Z* w  f
  5. void led_init(void)
    5 L! O6 d% }  i4 o- n6 W; M3 \
  6. {$ U4 n. |4 I2 ~/ s
  7.   GPIO_Init(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Fast);: l; B7 l; F: h1 l. `2 Z* ~. I
  8. }  @$ L8 t. A& f5 E; m% g# n
  9. + `+ y0 z, D/ L0 e, E7 y  F
  10. //led.h' Z7 I, [# j4 B
  11. #ifndef __LED_H7 V8 {/ {4 w& R
  12. #define __LED_H
    3 m. D  o* c" l* v& d  [
  13. 8 m' u8 L$ V, A  Z4 J- q# N2 |
  14. #define LED_GPIO_PORT  (GPIOB)
    + R& O; `, Q4 s4 ~% a
  15. #define LED_GPIO_PINS  (GPIO_Pin_5)
    5 M$ c* m0 b/ Y- U# O7 s: e8 c
  16. 0 c- b; C* ]9 `) M
  17. #define led_tog() GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS)! _; b6 R5 C- P2 a8 [. x, ^

  18. 8 [5 L% u7 x8 P6 L6 o
  19. void led_init(void);4 R, d* B3 [5 l

  20. % f7 z2 s* c+ g0 |1 X( J8 ]2 i
  21. #endif
复制代码
! z) V6 x* c! J. M2 R1 d
    2.2.2、主程序8 x  t6 R- w1 A$ J' I
  1. void main(void), Z- C4 p# _$ ]& Q! H; b: _
  2. {1 R. Q1 ~. M4 C1 S: ~+ I
  3.   CLK_Config();           //时钟初始化
    ! C0 ~: _3 }' Y8 {
  4.   ' V3 s: Z5 G8 ]2 P8 B, u
  5.   Delay(0x2fffff);        //延时5S$ {2 I' ?3 C/ v1 T* c" [1 o$ _! U
  6.   
    6 a) {9 |: L& y% Y: S- @
  7.   led_init();             //led初始化6 H& q- q: x" X, N
  8.   : C7 \7 g+ f1 q$ E  }
  9.   while (1)
    $ h% n( k) q; _& {8 {: q
  10.   {& m' }0 r# ?8 Z+ s9 x5 c" C
  11.     led_tog();            //LED取反            
    3 \  J2 Q  p7 A
  12.     Delay(0xffff);" L4 m4 z  k2 U
  13.   }0 ?- T. [: _1 L& G7 ]
  14. }
复制代码

& x( c$ z; n2 x$ S. o, n2 M    三、执行结果1 r% ?8 a/ q9 P" R1 W

- _6 f& M6 p# \
8 Z5 y: n6 o, Q* l- L9 F& w2 N
    3.1、在原来的工程文件仿真时,程序执行到
5 s# K7 f/ S; W) y/ G# }& t            CLK_Config();           //时钟初始化
3 E& w8 X% D/ x& f# V! I
  1. //时钟初始化/ J+ A' p: W+ _7 Q/ G, Y
  2. static void CLK_Config(void)
    8 P" c" ^' M3 F. s2 S: S* P7 F
  3. {      a9 d. Y( M( [! ]
  4.     /* Select HSI as system clock source */
    0 z, x4 r& q$ A8 F0 y+ |! D
  5.     CLK_SYSCLKSourceSwitchCmd(ENABLE);% H+ l9 S% H- ^% S4 @
  6.     CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);! T0 J; H! h9 t& K7 ]) |2 [" y. g
  7.     /* system clock prescaler: 1*/# k, @7 H& k6 j( Z1 p/ B9 Q! O+ b
  8.     CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
    / p" P0 F% y1 U" _! A; \* k+ `
  9.     //while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)5 P& w4 |- j7 J4 @$ ^
  10.     //{}   
    $ t8 \( t4 C4 b* {7 Q
  11. }
复制代码

% N1 h& R" A- a. f. z% u$ ^           这个函数while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI){} 位置跳转转不出来,把这个函数屏蔽掉以后,程序可以运行下去,后面再看看具体原因是什么。
. {" k) K# _9 W- K. K, U$ w   
2 X/ K$ H0 J! |; r    3.2、运行的视频
6 z3 B% Y2 ]: D- D( d2 @; D- m    2254.gif , f  Y4 {5 T6 O- ?

& l0 \8 C+ t. }* b8 M
; X- l, t& w5 x) P% q: k

, `# t% S8 O* x/ p, B$ z
- o4 D( ^' c% v) r( O# w: @0 t
    stm8l001芯片运行正常。) {' k* g. g& r4 q+ v9 |4 e

2 M( o0 k8 a& E2 ^

- c' g  n- l% O- ^. ~% q. }- a0 f6 X2 e: j: @

8 z0 Z& Z2 }$ Z8 W/ K; @
: g: r% E7 u$ I! h# K* s/ Y7 D

2 E7 |) ?& G, {6 ]3 c% m- }0 Y4 I! Y4 c
- a% ~8 K% d8 _/ R+ P2 x2 w7 r( `" b
0 t4 d  r% E4 W! e  ~7 Y
赞 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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版