新建完工程后当然是点亮led,,这个可是单片机界hello world。 查看数据手册(感谢谷歌翻译)后得之,stm8会自动采用内部16M晶振,并八分频后作为系统时钟, 1 所以先不用配置时钟,直接关注gpio就行了,在查看gpio相关寄存器之前,先拷贝一份简介 " ~& X, m8 [ Y T$ M4 `0 A 1。 gpio简介 通用输入/输出端口用于芯片与芯片之间的数据传输外部I / O端口最多可以包含8个引脚。 每个引脚可以单独使用编程为数字输入或数字输出。 另外,一些端口可能有备用功能如模拟输入,外部中断,片上外设的输入/输出。 只要一个备用功能可以一次映射到一个引脚。一个输出数据寄存器,输入数据存器,数据方向寄存器和两个配置寄存器与每个端口相关联。 特定端口将作为输入或输出取决于端口的数据方向寄存器的状态。 通过上面的简介可以使我们简单的了解gpio的功能。整理stm8 gpio相关寄存器,stm8把管脚分为A,B,C,D,E,F,I, G, H,每组最多8个引脚(这个应该和架构有关)每组有下面四个寄存器,每个寄存器8位。 2 C8 {- J- A" v$ F ODR; /*!< Output Data Register 数据输出寄存器,从高到低每位对应每个引脚的输出值 */ % I% R/ m8 P+ ~: F' d) l6 I; T# ~ IDR; /*!< Input Data Register 数据输入寄存器,从高到低每位对应每个引脚的输出值*/. p6 g4 E' ~3 W" ? DDR; /*!< Data Direction Register 数据输入输出寄存器,从高到低每位对应每个引脚的数据输入输出模式(0为输入,1为输出)*/* |5 a$ Z3 B8 t# N CR1; /*!< Configuration Register 1 数据输入输出IO配置寄存器1, 可以配置输入的上拉,输出推挽等状态*/# w4 C- v4 n) Y" p5 s CR2; /*!< Configuration Register 2 数据输入输出IO配置寄存器2,配置输入中断和输出速度 */ 3 K5 e$ Q4 _+ Z$ n' w' E4 s 2.实例 / w& u( _4 S t! ^ 从原理图上看led0 和l led1阴极分别连接到PC0和PC1上,所以我要把PC0和PC1设置为输出模式,推挽模式,速度不需要太快设置成2m就可以 这是寄存器版的' {2 A& l/ N$ U void main(void) { * W) ?" Z: w' M/ s //init led0 led1 GPIOC->DDR |= 0x03; //配置PC0 PC1为输出模式; u1 P; ^, t0 p2 h8 W GPIOC->CR1 |= 0x03; //配置PC0 PC1为推挽模式4 a M# ]8 g7 T. T+ E. N GPIOC->CR2 &= 0xfc; //配置PC0 PC1输出速度2m! O$ D0 n; i- A0 m% ` 0 O* f: t% Y3 e9 j# ^4 v% q " v2 [2 h) B+ l0 p9 ?$ Y /* Infinite loop */; G5 L( p) J4 e" o: X while (1)5 s! b4 c/ v0 h {4 ]9 z) ~" o4 F& t' U# ~ GPIOC->ODR |= 0x03; //熄灭1 O# Q4 w4 B& }+ Q Delay(1600); GPIOC->ODR &= 0xfc; //点亮 Delay(1600);: T) Y( u/ n4 w3 A }% Q0 o6 a9 ^+ z9 \; h }& B* u7 x. r5 d% p3 |% {, c8 ~% h 2 X# D6 b9 }, R# m% i2 _ & O# I# s1 ?, g6 L$ E# m6 G 这个是库函数版的6 z- m6 @- \$ S: s7 l! { void main(void)5 h+ j6 ?. r9 u5 u% ` {: o& j# k8 p: D/ q+ I8 H& v& q ; e% s" \" i n //init led0 led1" T8 q. N1 [2 N [# V; F# T GPIO_Init(GPIOC, GPIO_Pin_0 | GPIO_Pin_1, GPIO_Mode_Out_PP_High_Slow); /* Infinite loop */! Z" E% W Q% e% M while (1) { GPIO_ToggleBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1); l$ Z" e2 q& f: N% q" o' E( o Delay(1600);/ f; p& d/ T3 }5 D+ ~7 T+ R 9 y4 z; O+ I, f% p } }- c! y6 i, ]! n# l + w: w9 g% \ k V' D : o. E0 t2 F* w% l+ D1 J% I1 R 1 U: O, g$ c2 i) x( J 链接:https://pan.baidu.com/s/1c1UQa3m 密码:y9bk |
你这写,也太累了。 |
写的不错,加油 |