第一个实验就是LED闪灯
----------------------------
/* LED IO Configuration */
/* LD4: PD0 */
/* LD3: PD2 */
/* LD2: PD3 */
#include "STM8S105C_S.h"
void delay(unsigned int count)
{
while(count--);
}//延时
void GPIO_init(void)
{
PD_DDR |= 0x0D; // Output.
PD_CR1 |= 0x0D; //PushPull.
//PD_CR2 = 0x00; //Output speed up to 2MHz. this sentence has no work,cause CR2 is 00 at first
}
void Devices_init(void)
{
GPIO_init();
}
main()
{
Devices_init();
while(1)
{
PD_ODR = 0x04;
delay(50000);
PD_ODR = 0x00;
delay(50000);
}
}
————————————————————————————————————
板子上的LED开始闪了,哈哈。
1.今后代码一定养成如上的规范,先写各模块初始化函数,然后在包含在器件初始化函数中。
2.在这个编译器里,函数定义的输入参数里一定要写清楚,空值不能空着,写明void。如void Devices_init(void)
3.延时函数,先前用500,太快了,人眼都分辨不出来,延时长一点才有闪的效果。
----------------------------
/* LED IO Configuration */
/* LD4: PD0 */
/* LD3: PD2 */
/* LD2: PD3 */
#include "STM8S105C_S.h"
void delay(unsigned int count)
{
while(count--);
}//延时
void GPIO_init(void)
{
PD_DDR |= 0x0D; // Output.
PD_CR1 |= 0x0D; //PushPull.
//PD_CR2 = 0x00; //Output speed up to 2MHz. this sentence has no work,cause CR2 is 00 at first
}
void Devices_init(void)
{
GPIO_init();
}
main()
{
Devices_init();
while(1)
{
PD_ODR = 0x04;
delay(50000);
PD_ODR = 0x00;
delay(50000);
}
}
————————————————————————————————————
板子上的LED开始闪了,哈哈。
1.今后代码一定养成如上的规范,先写各模块初始化函数,然后在包含在器件初始化函数中。
2.在这个编译器里,函数定义的输入参数里一定要写清楚,空值不能空着,写明void。如void Devices_init(void)
3.延时函数,先前用500,太快了,人眼都分辨不出来,延时长一点才有闪的效果。