STM8S903K3T6C基于IAR开发GPIO点灯示例
📝本示例基于寄存器操作方式,内部时钟源作为时钟,使用定时器1进行定时,产生中断来控制闪烁间隔时间,led引脚在PD7上。
🌼点灯测序
#include"iostm8s903k3.h"
void CLK_init(void)
{
CLK_ICKR |= 0X01;
CLK_CKDIVR = 0x08;
while(!(CLK_ICKR&0x02));
CLK_SWR =0xE1;
}
void GPIO_init(void)
{
PD_DDR = (1<<7);
PD_CR1 = (1<<7);
}
void TIM1_init(void)
{
TIM1_PSCRH = 0x1F;
TIM1_PSCRL = 0x3F;
TIM1_ARRH = 0x03;
TIM1_ARRL = 0xE8;
TIM1_IER = 0x01;
TIM1_CR1 = 0x01;
}
#pragma vector = TIM1_OVR_UIF_vector
__interrupt void TIM1_OVR_UIF(void)
{
PD_ODR ^= (1<<7);
TIM1_SR1= 0x00;
}
int main(void)
{
CLK_init();
GPIO_init();
TIM1_init();
asm("rim");
while(1);
}
时钟源寄存器说明
CLK_CKDIVR = 0x08;
// 16M内部RC经2分频后系统时钟为8M
- RM0016_STM8S and STM8AF单片机参考手册:
https://www.stmcu.com.cn/Designresource/detail/reference_manual/699498