新手上路
- 积分
- 47
- 金钱
- 47
- 注册时间
- 2018-3-27
- 在线时间
- 5 小时
|

楼主 |
发表于 2018-3-29 14:51:58
|
显示全部楼层
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "tftlcd.h"
#include "key.h"
#include "touch.h"
#include "math.h" //ÔËËãí·Îļ
#include "HX711.h"
#include "usart2.h"
void Usart_Senddata(USART_TypeDef* USARTx,u32 buffer);
u8 tab[20]={0}; //êy¾Y±í»o3åÇø
u8 empty[]=" "; //2á3y½á1ûóã¨20λ¿Õ×Ö·û£©
int cc[20],dd[20]; //′æ′¢ÔËËã½á1û×Ö·û′æ′¢»o3å
int buff[20]; //êäèëêy¾Y»o3åêy×é
u8 flag,zero,one,two,point,point_flag;//±ê־λ
int a,b; //′¥Ãt·μ»ØÖμ
int i,j; //Ñ-»·óñäá¿
int x,y,x1,y1; //×ø±êÆ«òÆá¿
int k,v,t,l,h,m,n;
float num1,num2,num3,sum1,sum; //êy¾YÔËËã½á1û′æ′¢»o3å
int times; //êy¾Yλêy
int ch,pp;
char table[16]={'7','4','1','.', //êy¾Y±í
'8','5','2','0',
'9','6','3','=',
'c','q','t','a'};
void kai_display() //¿a»úÏÔê¾
{
FRONT_COLOR=BLACK;
LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,16,"Touch Test");
LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,16,"www.prechin.net");
LCD_ShowString(10,50,tftlcd_data.width,tftlcd_data.height,16,"K_UP:Adjust");
}
void display_init() //3õê¼»ˉÏÔê¾
{
FRONT_COLOR=BLACK;
LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,16,"Weight:");
LCD_ShowString(10,60,tftlcd_data.width,tftlcd_data.height,16,"Price:");
LCD_ShowString(10,110,tftlcd_data.width,tftlcd_data.height,16,"total:");
LCD_DrawRectangle(5,160,230,390);
for(j=35;j<230;j=j+55){
for(k=195;k<390;k=k+55){
LCD_ShowChar(j,k,table[v],16,0);
v++;
}
}
}
int main()
{
u32 adcx;
u32 adcx1;
float weight;
u8 key;
u16 penColor = BLUE;
x=35; //×Ö·ûoá×ø±ê3õÖμ
y=195; //×Ö·û×Y×ø±ê3õÖμ
k=0; //
x1=10; //×Ö·û¿òoá×ø±ê3õÖμ
y1=170; //×Ö·û¿ò×ø±ê3õÖμ
v=0;
t=0;//×a»»êy×éμÄÖμ
l=0;
zero=0;
times=0;
sum1=0;
m=80;//¼Û¸ñÏÔê¾oá×ø±êx
n=60;//¼Û¸ñÏÔê¾×Y×ø±êy
point_flag=0;
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÖD¶ÏóÅÏè¼¶·Ö×é ·Ö2×é
LED_Init();
USART1_Init(9600);
USART2_Init(9600);
TFTLCD_Init(); //LCD3õê¼»ˉ
KEY_Init();
kai_display();
delay_ms(20000);
LCD_Clear(WHITE);
TOUCH_Init();
display_init();
RCC_Configuration();//RCCÖ¸ê±Öó¿ØÖÆÔ¤·ÖÆμÆ÷
GPIO_Configuration();//3õê¼»ˉGPIO¿ú×′ì¬
adcx=filter();
while(1)
{
delay_ms(1000);//Ñóê±1s,¿éÄüêÇÎaáËμè¶áêyÎ趨£¨Õa¸öÑóê±êÇÎaáËÎ趨£¬ò2¿éòÔáôê±¼äÂË2¨£©
adcx1=filter();
if(adcx1>adcx){
adcx1=adcx1-adcx;
adcx1=adcx1/100;//Îa½úê¡ÔËËãá¿£¬½«ADÖμ1춨ËõD¡100±¶
weight=(float)adcx1/4.29496+0.005; //êμ¼êóÃμÄê±oòDèòaμ÷êÔ£¬429.496óéóú′«¸DÆ÷2îòìÕa¸öÏμêyò»°ãÔú400μ½500Ö®¼ä£¬¼ó0.005êÇÎaáËËÄéáÎåèë
adcx1=weight;
USART2_printf("%f",adcx1);
LCD_ShowxNum(80,10,adcx1,3,16,0);//ÏÔê¾ÖØá¿ÖμÕûêy2¿·Ö
weight-=adcx1;
weight*=1000;
}
key=KEY_Scan(0);
if(key==KEY_UP)
{
TOUCH_Adjust(); //D£Õy
display_init();
}
if(TOUCH_Scan() == 0)
{
if(TouchData.lcdx>x1&&TouchData.lcdx<x1+55&&TouchData.lcdy>y1&&TouchData.lcdy<y1+55)
{
LCD_ShowChar(m,n,table[0],16,0);
buff[t++]=(int)table[0]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1&&TouchData.lcdx<x1+55&&TouchData.lcdy>y1+55&&TouchData.lcdy<y1+110)
{
LCD_ShowChar(m,n,table[1],16,0);
buff[t++]=(int)table[1]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1&&TouchData.lcdx<x1+55&&TouchData.lcdy>y1+110&&TouchData.lcdy<y1+165)
{
LCD_ShowChar(m,n,table[2],16,0);
buff[t++]=(int)table[2]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1&&TouchData.lcdx<x1+55&&TouchData.lcdy>y1+165&&TouchData.lcdy<y1+220)
{
LCD_ShowChar(m,n,table[3],16,0);
buff[t++]=(int)table[3]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+55&&TouchData.lcdx<x1+110&&TouchData.lcdy>y1&&TouchData.lcdy<y1+55)
{
LCD_ShowChar(m,n,table[4],16,0);
buff[t++]=(int)table[4]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+55&&TouchData.lcdx<x1+110&&TouchData.lcdy>y1+55&&TouchData.lcdy<y1+110)
{
LCD_ShowChar(m,n,table[5],16,0);
buff[t++]=(int)table[5]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+55&&TouchData.lcdx<x1+110&&TouchData.lcdy>y1+110&&TouchData.lcdy<y1+165)
{
LCD_ShowChar(m,n,table[6],16,0);
buff[t++]=(int)table[6]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+55&&TouchData.lcdx<x1+110&&TouchData.lcdy>y1+165&&TouchData.lcdy<y1+220)
{
LCD_ShowChar(m,n,table[7],16,0);
buff[t++]=(int)table[7]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+110&&TouchData.lcdx<x1+165&&TouchData.lcdy>y1&&TouchData.lcdy<y1+55)
{
LCD_ShowChar(m,n,table[8],16,0);
buff[t++]=(int)table[8]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+110&&TouchData.lcdx<x1+165&&TouchData.lcdy>y1+55&&TouchData.lcdy<y1+110)
{
LCD_ShowChar(m,n,table[9],16,0);
buff[t++]=(int)table[9]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+110&&TouchData.lcdx<x1+165&&TouchData.lcdy>y1+110&&TouchData.lcdy<y1+165)
{
LCD_ShowChar(m,n,table[10],16,0);
buff[t++]=(int)table[10]-'0';
delay_ms(2000);
m=m+8;
}
if(TouchData.lcdx>x1+110&&TouchData.lcdx<x1+165&&TouchData.lcdy>y1+165&&TouchData.lcdy<y1+220)
{ sum1=0;num1=0;
for(i=0;i<t;i++){printf("%d\n",buff);delay_ms(2000);
}
if(buff[0]<0)
LCD_ShowString(80,110,tftlcd_data.width,tftlcd_data.height,16,"Error");
else{
for(i=0;buff>0;i++)
sum1=sum1*10+buff;
printf("sum1=%f\n",sum1);
printf("i=%d\n",i);
v=t-i-1;
printf("V=%d\n",t-i-1);
for(i=0;i<v;i++)
num1=num1/10+(float)buff[t-1-i]/10;
printf("num1=%f\n",num1);
sum=num1+sum1;
}
//printf("%f\n",sum);
}
if(TouchData.lcdx>x1+165&&TouchData.lcdx<x1+220&&TouchData.lcdy>y1&&TouchData.lcdy<y1+55)
{
LCD_Fill(80,60,230,110,BACK_COLOR);
m=80;
t=0;
sum1=0;num1=0;sum=0;
}
if(TouchData.lcdx>x1+165&&TouchData.lcdx<x1+220&&TouchData.lcdy>y1+55&&TouchData.lcdy<y1+110)
{
LCD_Fill(80,60,230,110,BACK_COLOR);
m=80;
}
if(TouchData.lcdx>x1+165&&TouchData.lcdx<x1+220&&TouchData.lcdy>y1+110&&TouchData.lcdy<y1+165)
{
LCD_Fill(80,60,230,110,BACK_COLOR);
m=80;
}
if(TouchData.lcdx>x1+165&&TouchData.lcdx<x1+220&&TouchData.lcdy>y1+165&&TouchData.lcdy<y1+220)
{
LCD_Fill(80,60,230,110,BACK_COLOR);
m=80;
}
}
}
}
这是用你发的usart2的代码写的串口2部分,然后在输出质量的地方用了usart2_printf(),但是不能输出质量,还会影响触屏部分。但是把触屏或者称重屏蔽掉一个,两个都可以
我虽然用了usart2_printf(),但是称重部分还是通过串口1 传输的数据。
我是在纠结怎么才能把称重通过串口2传输,不要影响到串口1 的触屏 |
|