1 J-link和ST-link的兼容性
STM8只能用ST-link。J-link兼容所有的(大部分而已)的ARM內(nèi)核IC
mark: ?http://bbs.eeworld.com.cn/thread-431094-1-1.html
其實(shí)不在線編譯的話,可以選擇串口和usb燒錄,還有IAP(最近有看到項(xiàng)目用這個(gè))
2搭建開發(fā)環(huán)境
STM8只能用ST 自己的軟件 STVD 聽說IAR也可以,但是很麻煩。(去官網(wǎng)下載,不需要破解)
mark: ? https://jingyan.baidu.com/article/4b07be3c4c344348b380f3a2.html

3焊接好硬件
原來在做pcb的時(shí)候還是疏忽了一些細(xì)節(jié),
調(diào)試點(diǎn)太近了,焊盤孔沒做處理。

4編代碼
STm8是因?yàn)橹С烛?qū)動(dòng)LCD所以選用。
程序用ST的庫函數(shù)。自己按硬件電路,配置好lcd引腳。NTC的讀取,和按鍵配置。
最關(guān)鍵的是溫度控制器的功能實(shí)現(xiàn)。
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。。。