|
新建完工程后当然是点亮led,,这个可是单片机界hello world。 查看数据手册(感谢谷歌翻译)后得之,stm8会自动采用内部16M晶振,并八分频后作为系统时钟,; Q" _2 _0 M$ `2 }, I 1
所以先不用配置时钟,直接关注gpio就行了,在查看gpio相关寄存器之前,先拷贝一份简介 1。 gpio简介: u$ i6 f" T) n2 R* y Q 通用输入/输出端口用于芯片与芯片之间的数据传输外部I / O端口最多可以包含8个引脚。 每个引脚可以单独使用编程为数字输入或数字输出。 另外,一些端口可能有备用功能如模拟输入,外部中断,片上外设的输入/输出。 只要一个备用功能可以一次映射到一个引脚。一个输出数据寄存器,输入数据存器,数据方向寄存器和两个配置寄存器与每个端口相关联。 特定端口将作为输入或输出取决于端口的数据方向寄存器的状态。 2 e1 q; V) o- \0 [9 M) y 通过上面的简介可以使我们简单的了解gpio的功能。整理stm8 gpio相关寄存器,stm8把管脚分为A,B,C,D,E,F,I, G, H,每组最多8个引脚(这个应该和架构有关)每组有下面四个寄存器,每个寄存器8位。 \9 C" p4 P ]1 |/ x$ a 0 Y0 \! {. y* {6 }5 b6 S' A ODR; /*!< Output Data Register 数据输出寄存器,从高到低每位对应每个引脚的输出值 */ IDR; /*!< Input Data Register 数据输入寄存器,从高到低每位对应每个引脚的输出值*// d$ Z) Q9 S8 B: ^ Q DDR; /*!< Data Direction Register 数据输入输出寄存器,从高到低每位对应每个引脚的数据输入输出模式(0为输入,1为输出)*/ CR1; /*!< Configuration Register 1 数据输入输出IO配置寄存器1, 可以配置输入的上拉,输出推挽等状态*/- Q' r/ q; i4 t, A: @# _4 p. e) S CR2; /*!< Configuration Register 2 数据输入输出IO配置寄存器2,配置输入中断和输出速度 */ 2.实例
从原理图上看led0 和l led1阴极分别连接到PC0和PC1上,所以我要把PC0和PC1设置为输出模式,推挽模式,速度不需要太快设置成2m就可以 这是寄存器版的 void main(void) { //init led0 led1 GPIOC->DDR |= 0x03; //配置PC0 PC1为输出模式3 M- h! s5 B; P2 M$ d " U w, Y8 f) m" Y GPIOC->CR1 |= 0x03; //配置PC0 PC1为推挽模式6 M% w$ ]; q8 b$ t/ u' D! p GPIOC->CR2 &= 0xfc; //配置PC0 PC1输出速度2m: q1 Q- a" [; S" r ! x/ K8 {7 T! C, r /* Infinite loop */6 u( K+ z+ z y. s/ S' r while (1) { GPIOC->ODR |= 0x03; //熄灭 Delay(1600);7 P8 J3 i$ z) X1 f4 r( K2 r GPIOC->ODR &= 0xfc; //点亮 % F- y2 W! j+ h, Z8 j# Z: T+ \" Y Delay(1600);% d* @* D0 s, H. q } }; D$ w% ]" o3 f3 h 这个是库函数版的% m4 x# |: t* a6 [ void main(void) {# l. T- F3 |3 z9 C //init led0 led1 L! b) R1 U$ Z6 L7 z2 |; @ GPIO_Init(GPIOC, GPIO_Pin_0 | GPIO_Pin_1, GPIO_Mode_Out_PP_High_Slow); 8 @/ Z6 I9 d* V3 }- u9 o /* Infinite loop */* `% |* J" n1 y9 \' b+ |( X( I while (1) {8 ? ^6 @. r q0 U! `1 l GPIO_ToggleBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1);; p5 O+ R7 y; p2 P Delay(1600);- ?9 u" T; d% [) ? 4 X) x6 h+ r4 X; T }, h: v) K+ g4 d% } } - Q) ^3 B9 I) P+ Z# h+ e6 \ {5 O& n; q 8 \6 n+ _3 Y: F( @% a8 J 链接:https://pan.baidu.com/s/1c1UQa3m 密码:y9bk1 `* X( t5 ^9 K6 s |
| 你这写,也太累了。 |
| 写的不错,加油 |
微信公众号
手机版