STM8S103飞线外接芯片,I2C不能得到slaveAddress应答,通讯失败。
测试标签123
IAR FOR ARM和IAR FOR STM8无法共存,
STM8L052,液晶内部电源怎么用?
STM8S105C6T6 UART2串口,能接收数据,不能发送数据
STM8S105K4 串口2 无奇偶校验,也能接收 偶校验的 数据
在STM8S的IAP使用中断和APP使用中断问题
STM8L151 SMBUS设计
STM8S103F复位异常
STM8L的LCD调试时不亮
微信公众号
手机版
以下是用STM8L052R8T6驱动段式液晶,LCD控制器的初始化,我用的LCD是1/3bais,1/4duty,你要根据自己的LCD来配置是什么duty,什么bais,用的是哪些com口,哪些SEG引脚。希望能帮到你。
void lcd_init(void)
{
CLK_PCKENR2|=0x08; //Enable LCD clock;
LCD_CR1=0x06; //1/3bais,1/4duty,all pixel blink disable,blink Fre=fLCD/8
LCD_CR2=0xf1; //LCD voltage source: external source
LCD_CR4=0x00;
LCD_FRQ=0x21; //PS=2, DIV=1, Flcd=38KHz, Fframe=69.8Hz
LCD_PM0=0x7F; //Enable LCD_SEG0~LCD_SEG6, Disable LCD_SEG7
LCD_PM1=0xC6; //Enable LCD_SEG9,10,14,15, Disable LCD_SEG8,11,12,13
LCD_PM2=0x3B; //Enable LCD_SEG16,17,19~21,Disable LCD_SEG18,22,23
LCD_PM4=0xF0; //Enable LCD_SEG36,37,38,39
LCD_CR3=0x40; //LCD Enable
}
LCD清屏,其实就是把用到的LCD_RAM清零。
void lcd_clearscreen(void)
{
LCD_RAM0=0;
LCD_RAM1=0;
LCD_RAM2=0;
LCD_RAM3=0;
LCD_RAM4=0;
LCD_RAM5=0;
LCD_RAM6=0;
LCD_RAM7=0;
LCD_RAM8=0;
LCD_RAM9=0;
LCD_RAM10=0;
LCD_RAM11=0;
LCD_RAM12=0;
LCD_RAM13=0;
LCD_RAM15=0;
LCD_RAM17=0;
LCD_RAM19=0;
LCD_RAM21=0;
}
全显,就是把LCD_RAM中的每位写入1
void lcd_fullscreen(void)
{
LCD_RAM0=0xFF;
LCD_RAM1=0xFF;
LCD_RAM2=0xFF;
LCD_RAM3=0xFF;
LCD_RAM4=0xFF;
LCD_RAM5=0xFF;
LCD_RAM6=0xFF;
LCD_RAM7=0xFF;
LCD_RAM8=0xFF;
LCD_RAM9=0xFF;
LCD_RAM10=0xFF;
LCD_RAM11=0xFF;
LCD_RAM12=0xFF;
LCD_RAM13=0xFF;
LCD_RAM15=0xFF;
LCD_RAM17=0xFF;
LCD_RAM19=0xFF;
LCD_RAM21=0xFF;
}
显示或关闭某一个像素(某一个笔段)
下面是8段数字的其中一个笔段A,这个笔段由COM0和LCD_SEG5这两个引脚控制。COM0的笔段由LCD_RAM0控制,这个A像素是SEG5。
所以显示这个像素就是把LCD_RAM0的第5位置1,不显示这个像素就是把LCD_RAM0的第5位清0。
#define LED1A_OFF() LCD_RAM0&=0xDF
#define LED1A_ON() LCD_RAM0|=0x20