×
嵌入式 > 技术百科 > 详情

STM8L052 温度控制器

发布时间:2024-05-05 发布时间:
|

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

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

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


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


2搭建开发环境

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

mark: /zixunimg/eeworldimg/jingyan.baidu.com/article/4b07be3c4c344348b380f3a2.html

3焊接好硬件

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

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

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();
}
}
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
无人机新突破:或将利用手机发射塔追踪无人机