2017.11.16 STM8L052 温度控制器

1 J-link和ST-link的兼容性

STM8只能用ST-link。J-link兼容所有的(大部分而已)的ARM内核IC

mark:  http://bbs.eeworld.com.cn/thread-431094-1-1.html

其实不在线编译的话,可以选择串口和usb烧录,还有IAP(最近有看到项目用这个)

2搭建开发环境

STM8只能用ST 自己的软件 STVD 听说IAR也可以,但是很麻烦。(去官网下载,不需要破解)

mark:   https://jingyan.baidu.com/article/4b07be3c4c344348b380f3a2.html

2017.11.16 STM8L052 温度控制器_第1张图片

3焊接好硬件

原来在做pcb的时候还是疏忽了一些细节,

调试点太近了,焊盘孔没做处理。

2017.11.16 STM8L052 温度控制器_第2张图片

4编代码

STm8是因为支持驱动LCD所以选用。

程序用ST的库函数。自己按硬件电路,配置好lcd引脚。NTC的读取,和按键配置。

最关键的是温度控制器的功能实现。

void sleep_enter(void)

{

//off LCD

disableInterrupts();

prog_enter_sleep();

disp_enter_sleep();

LCD_Com_Page(0);

LCD_Cmd(DISABLE);

//disable 16Hz

RTC_WakeUpCmd(DISABLE);

GPIO_Init(POWER_12V_PORT,POWER_12V_PIN,GPIO_Mode_In_PU_IT);

//disable ADC Clock

CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, DISABLE);

enableInterrupts();

}

void sleep_exit(void)

{

disableInterrupts();

key_init();

temper_init();

//disable 16Hz

RTC_WakeUpCmd(ENABLE);

//disable ADC Clock

CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);

//off LCD

LCD_Cmd(ENABLE);

GPIO_Init(POWER_12V_PORT,POWER_12V_PIN,GPIO_Mode_In_PU_No_IT);

enableInterrupts();

ADC_SoftwareStartConv(ADC1);

key_flag.f.disable=1; //clear the default key input

sys_time_load();

}

void sleep_func(void)

{

if((GPIO_ReadInputData(POWER_12V_PORT)&POWER_12V_PIN)!=0){

nop();

nop();

nop();

if((GPIO_ReadInputData(POWER_12V_PORT)&POWER_12V_PIN)!=0){

sleep_enter();

_sleep_loop:

if((GPIO_ReadInputData(POWER_12V_PORT)&POWER_12V_PIN)==0){

goto _sleep_exit;

}

halt();

if((GPIO_ReadInputData(POWER_12V_PORT)&POWER_12V_PIN)!=0){

goto _sleep_loop;

}

_sleep_exit:

sleep_exit();

}

}

}

5功能演示

video。。。

你可能感兴趣的:(2017.11.16 STM8L052 温度控制器)