新建完工程后当然是点亮led,,这个可是单片机界hello world。 查看数据手册(感谢谷歌翻译)后得之,stm8会自动采用内部16M晶振,并八分频后作为系统时钟,% H, j' K; @ s; ^- x; s 1 所以先不用配置时钟,直接关注gpio就行了,在查看gpio相关寄存器之前,先拷贝一份简介 1。 gpio简介0 T6 r/ [4 ?- T. K' Q2 n4 \5 ~+ t 通用输入/输出端口用于芯片与芯片之间的数据传输外部I / O端口最多可以包含8个引脚。 每个引脚可以单独使用编程为数字输入或数字输出。 另外,一些端口可能有备用功能如模拟输入,外部中断,片上外设的输入/输出。 只要一个备用功能可以一次映射到一个引脚。一个输出数据寄存器,输入数据存器,数据方向寄存器和两个配置寄存器与每个端口相关联。 特定端口将作为输入或输出取决于端口的数据方向寄存器的状态。# N! M/ g/ J. ^9 q % }# F! @, }' T& q8 i. l 2 q, N3 P6 m# E0 b! J, V 通过上面的简介可以使我们简单的了解gpio的功能。整理stm8 gpio相关寄存器,stm8把管脚分为A,B,C,D,E,F,I, G, H,每组最多8个引脚(这个应该和架构有关)每组有下面四个寄存器,每个寄存器8位。+ Y' P I- }8 h. Q% C/ q ODR; /*!< Output Data Register 数据输出寄存器,从高到低每位对应每个引脚的输出值 */ 5 M1 x- u) t( n IDR; /*!< Input Data Register 数据输入寄存器,从高到低每位对应每个引脚的输出值*/ DDR; /*!< Data Direction Register 数据输入输出寄存器,从高到低每位对应每个引脚的数据输入输出模式(0为输入,1为输出)*/ CR1; /*!< Configuration Register 1 数据输入输出IO配置寄存器1, 可以配置输入的上拉,输出推挽等状态*/4 Z p1 I: f9 F6 S/ O) R CR2; /*!< Configuration Register 2 数据输入输出IO配置寄存器2,配置输入中断和输出速度 */ ( M( J, s, S- v0 R9 W' |; P" S 2.实例 2 ?2 c4 W G4 s% n9 A0 ^/ d 从原理图上看led0 和l led1阴极分别连接到PC0和PC1上,所以我要把PC0和PC1设置为输出模式,推挽模式,速度不需要太快设置成2m就可以 / d- w4 z r, y V" P 这是寄存器版的 void main(void) {/ n- _. N* U' B0 Q# \) K0 B % x$ v) S: `; ]. r //init led0 led1 o; r+ v* ]* u4 E( h GPIOC->DDR |= 0x03; //配置PC0 PC1为输出模式 GPIOC->CR1 |= 0x03; //配置PC0 PC1为推挽模式 GPIOC->CR2 &= 0xfc; //配置PC0 PC1输出速度2m 1 z8 ?+ j- E- k. s w1 h 4 `, ^- u) T" ^) [ /* Infinite loop */! e8 y4 a; G5 M7 K4 j, Y- ~% @ while (1)/ E8 w) p% |3 @. p { GPIOC->ODR |= 0x03; //熄灭( J9 W8 U# R6 T' o7 N0 i Delay(1600); GPIOC->ODR &= 0xfc; //点亮 3 `# I" g6 L7 P3 X% s) J Delay(1600); }9 [; @% [; H" M& C7 G3 x/ \0 i% E } # D1 m' E8 |( D5 `$ L. Y3 h 这个是库函数版的( p5 w: z1 k, Q2 U2 c void main(void) { % h# T" N& N" H' p8 H //init led0 led1 GPIO_Init(GPIOC, GPIO_Pin_0 | GPIO_Pin_1, GPIO_Mode_Out_PP_High_Slow); /* Infinite loop */* M1 G* l( i1 l8 | while (1) {) Z, x' A7 L. B) [ GPIO_ToggleBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_1); Delay(1600); } }, C" s/ `4 J' W. g0 ] ' j5 B6 M) Z$ g1 }4 W' w8 V& L1 k# [# q . l, a6 T. P. y- f5 ?! j1 G * q# ]$ m& W7 @" m' A! A( R 链接:https://pan.baidu.com/s/1c1UQa3m 密码:y9bk- j/ ]- @3 }; G0 U$ ~: | |
你这写,也太累了。 |
写的不错,加油 |