void HZ_show_moy(void) { lcdone16HZ(54+25+32+30,115,table9); lcdone16HZ(54+25+32+30+17,115,table10); }
#ifndef __LCDFOT_H #define __LCDFOT_H #include \
u8 lcdoneHZ(u8 x,u8 y,unsigned char *code); //显示24位汉字 u8 lcdone16HZ(u8 x,u8 y,unsigned char *code); //显示16位汉字
void HZ_show(void);
void HZ_show_moy(void);
#endif
#include \#include \#include \
void HX711_Init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PE端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //LED0-->PB.5 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6); }
u32 HX711_read(void) { u32 count; u8 i; delay_us(1); HX711_SCL=0; count=0; while(HX711_DOUT); for(i=0;i<24;i++) { HX711_SCL=1; count=count<<1; HX711_SCL=0; if(HX711_DOUT) count++; } HX711_SCL=1; count=count^0x800000; delay_us(1); HX711_SCL=0; return count; }
//得到的质量单位是 g 克 float HX711_count(void) { u8 a; u32 adc,wei; float vol; for(a=10;a>0;a--) { adc=HX711_read(); wei=wei+adc; } wei=wei/10; printf(\值:%d\\r\\n\ vol=((float)(wei-7431260)/1118)-1.8-1.55; wei=0;
//注意改参数 printf(\重量=%f\\r\\n\ return vol; }
#ifndef __HX711_H
#define __HX711_H #include \
#define HX711_SCL PAout(5) #define HX711_DOUT PAin(6)
void HX711_Init(void); u32 HX711_read(void); float HX711_count(void);
#endif
#include \#include \#include \ #include \ #include \
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途 //2.4/2.8寸/3.5寸 TFT液晶驱动 //支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/SPFD5408/SSD1289/1505/B505/C505等 //正点原子@ALIENTEK
//********************************************************************************
//V1.2修改说明
//支持了SPFD5408的驱动,另外把液晶ID直接打印成HEX格式.方便查看LCD驱动IC. //V1.3
//加入了快速IO的支持
//修改了背光控制的极性(适用于V1.8及以后的开发板版本)
//对于1.8版本之前(不包括1.8)的液晶模块,请修改LCD_Init函数的LCD_LED=1;为
LCD_LED=1; //V1.4
//修改了LCD_ShowChar函数,使用画点功能画字符。 //加入了横竖屏显示的支持 //V1.5 20110730
//1,修改了B505液晶读颜色有误的bug. //2,修改了快速IO及横竖屏的设置方式. //V1.6 20111116
//1,加入对LGDP4535液晶的驱动支持 //V1.7 20120713
//1,增加LCD_RD_DATA函数 //2,增加对ILI9341的支持
//3,增加ILI9325的独立驱动代码
//4,增加LCD_Scan_Dir函数(慎重使用)
//6,另外修改了部分原来的函数,以适应9341的操作 //V1.8 20120905
//1,加入LCD重要参数设置结构体lcddev
//2,加入LCD_Display_Dir函数,支持在线横竖屏切换 //V1.9 20120911
//1,新增RM68042驱动(ID:6804),但是6804不支持横屏显示!!原因:改变扫描方式, //导致6804坐标设置失效,试过很多方法都不行,暂时无解。 //V2.0 20120924
//在不硬件复位的情况下,ILI9341的ID读取会被误读成9300,修改LCD_Init,将无法识别 //的情况(读到ID为9300/非法ID),强制指定驱动IC为ILI9341,执行9341的初始化。 //V2.1 20120930
//修正ILI9325读颜色的bug。 //V2.2 20121007
//修正LCD_Scan_Dir的bug。
//////////////////////////////////////////////////////////////////////////////////
//LCD的画笔颜色和背景色
u16 POINT_COLOR=0x0000; //画笔颜色 u16 BACK_COLOR=0xFFFF; //背景色
//管理LCD重要参数 //默认为竖屏 _lcd_dev lcddev; //写寄存器函数 //regval:寄存器值
void LCD_WR_REG(u16 regval) { LCD->LCD_REG=regval;//写入要写的寄存器序号
}
//写LCD数据 //data:要写入的值
void LCD_WR_DATA(u16 data) { LCD->LCD_RAM=data; }
//读LCD数据 //返回值:读到的值
u16 LCD_RD_DATA(void) { return LCD->LCD_RAM; } //写寄存器
//LCD_Reg:寄存器地址
//LCD_RegValue:要写入的数据
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue) { LCD->LCD_REG = LCD_Reg; //写入要写的寄存器序号 LCD->LCD_RAM = LCD_RegValue;//写入数据 } //读寄存器
//LCD_Reg:寄存器地址 //返回值:读到的数据
u16 LCD_ReadReg(u8 LCD_Reg) { LCD_WR_REG(LCD_Reg); //写入要读的寄存器序号 delay_us(5); return LCD_RD_DATA(); //返回读到的值 }
//开始写GRAM
void LCD_WriteRAM_Prepare(void) {
LCD->LCD_REG=lcddev.wramcmd; }
//LCD写GRAM //RGB_Code:颜色值
void LCD_WriteRAM(u16 RGB_Code) { LCD->LCD_RAM = RGB_Code;//写十六位GRAM }
//从ILI93xx读出的数据为GBR格式,而我们写入的时候为RGB格式。 //通过该函数转换
//c:GBR格式的颜色值
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库电子秤stm32程序在线全文阅读。
相关推荐: