项目日志:Day18 --- 2020.8.13

任务:

1. 修改项目二数值返回函数;
2. 滚屏报警显示,且报警常亮不休眠;
3. 烧录软件开发;


上午

目前程序烧录进去后存在的问题是:无法连续两次输入上限值;
代码如下:

DWIN.c

#include "DWIN.h"
#include "usart.h"
#include "delay.h"
#include "sys.h"
int rx=0; 
u8 ID1,ID2,m=0;
u16 Recive_shang,Recive_xia,shang1,shang2,xia1,xia2;
u8 t;
char buf3[10]={0x5A,0xA5,0x07,0x82,0x10,0x02,0x00,0x00};      //上限
char buf4[10]={0x5A,0xA5,0x07,0x82,0x10,0x04,0x00,0x00};      //下限

void Send_Dwin(char *p)
{
	for(t=0;t<10;t++)
	{
		USART_SendData(USART1,*(p+t));//向串口1发送数据
		while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
	}
	
	USART_RX_STA=0;
} 

void Count_Temp(void)
{

	ID1=USART_RX_BUF[4];
	ID2=USART_RX_BUF[5];
	if(ID1==0x10&&ID2==0x04)
	{
		xia1=USART_RX_BUF[9];
		xia2=USART_RX_BUF[10];
		Recive_xia=(xia1<<8)|xia2;
		if(m==1)
		{				
			buf3[8]=shang1,buf3[9]=shang2;
			Send_Dwin(buf3);
			m=0;
		}
	}
	if(ID1==0x10&&ID2==0x02)
	{
		shang1=USART_RX_BUF[9];
		shang2=USART_RX_BUF[10];
		Recive_shang=(shang1<<8)|shang2;
		if(m==0)
		{
			buf4[8]=xia1,buf4[9]=xia2;
			Send_Dwin(buf4);
			m=1;
		}
	}
}



main.c

#include "delay.h"
#include "sys.h"
#include "LED.h"
#include "DWIN.h"
#include "EPPROM.h"
#include "485.h"
#include "ADS1232.h"
#include "usart.h"

u8 a,d=1;
u16 JIZUNZI,Shangxianzhi,Xiaxianzhi;
char buf1[10]={0x5A,0xA5,0x07,0x82,0x10,0x06,0x00,0x00};          //锟斤拷锟斤拷值
char buf2[10]={0x5A,0xA5,0x07,0x82,0x10,0x08,0x00,0x00};          //锟斤拷锟斤拷
		 
int Shengding=1,Qidong=1,Guilin=1;

void Julizhi_Send(void)
{
	  	ADS1232_Read_Send();
		buf1[8]=JL1;
		buf1[9]=JL2;
		buf2[8]=JL1;
		buf2[9]=JL2;
		Send_Dwin(buf1);
	  	Send_Dwin(buf2);
}

int main(void)
{
	u16 len,t;
  	unsigned char Byte[3];
	uart_init(115200);
	RCC_Configuration();
	ADS1232_Init();
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	
	while(1)
	{
		while(a==0)
    	{
			Julizhi_Send(); 
    		if(DZ1==0x20&&DZ2==0x02&&GL1==0x01)
			{
         		JIZUNZI=(JL1<<8)|JL2;	
          		buf2[8]=0;
		  		buf2[9]=0;
				Send_Dwin(buf2);
				while(d==1)
				{
					Count_Temp();
					if(DZ1==0x20&&DZ2==0x00&&GL1==0x01) 
					{
						d=0;
						a=1;
					}
				}			
			}
			
		 	Shangxianzhi=JIZUNZI+Recive_shang;
		 	Xiaxianzhi=JIZUNZI-Recive_xia;
		}
	}
}

Ctrl + S的格式化发生错误了,难搞;
对于屏的串口,需要先有Send后才能读取数值(小bug);
原版代码Count_Temp函数里的逻辑有问题;
当输入了上限后,m置为了1,但当下一步操作再改变上限值时,判断返回值是false,无法Send
所以再下一步的操作将无法返回数值;

更改后的Count_Temp函数:
在这里插入图片描述

这样还有个bug,就是如果连续两次上限值输入相同,则下一次的下限值无法读取;


下午

添加个滚动文本来显示报警;
字体大小是个问题,字库的字体大小都是固定的;
所以只能再生成一个小字库,用GBK编码,70*70
参考的帖子:DGUS II 如何用小字库轻松实现超大点阵字库显示

小字库显示不出来,我服了;
迪文的文本显示是真的垃圾,各种问题;
只能再建一个大号字库;
也许可以试一下将滚动文本改为文本 — 还是乱码,应该就是字库的问题;

对于模拟触控唤醒屏幕的做法,客服演示该无应答版本的内核也能做到;
但实际上利用串口调试助手发送指令后无响应,屏幕暗度未变化;

可能要用OS来做了;
难搞;
不知道可不可以用C开发来做;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
优化下面代码.bg { width: 100%; height: 100vh; background-image: url('../../assets/img/info-bg.png'); background-size: 100% 100%; background-repeat: no-repeat; position: relative; font-family: AlibabaPuHuiTiR; .goBack { position: absolute; top: 34px; right: 65px; cursor: pointer; color: #ffffff; width: 181px; padding: 15px 10px; background: rgba(24, 31, 30, 0.52); border: 1px solid #4a524e; border-radius: 5px; font-size: 18px; font-family: AlibabaPuHuiTiR; z-index: 111; display: flex; flex-direction: row; justify-content: space-between; align-items: center; } .home-left { position: absolute; top: 18%; left: 40px; width: 41%; height: 76%; font-size: 24px; color: #ffffff; } .unit { font-size: 24px; color: #636363; } .home-left-title { font-size: 24px; color: #ffffff; line-height: 36px; } .home-right { position: absolute; top: 18%; right: 88px; width: 46%; height: 78%; } .model { display: flex; justify-content: center; align-items: center; height: 90%; } #threeContained { width: 100%; height: 100%; } .model-qk-img { width: 82%; height: 90%; background-image: url('../../assets/img/howo.png'); background-size: 100% 100%; background-repeat: no-repeat; } .model-zk-img { width: 56%; height: 90%; background-image: url('../../assets/img/heavyT.png'); background-size: 100% 100%; background-repeat: no-repeat; } .model-gj-img { width: 82%; height: 90%; background-image: url('../../assets/img/transit.png'); background-size: 100% 100%; background-repeat: no-repeat; } .car-online { margin-bottom: 50px; } } .day-data { display: flex; flex-direction: row; justify-content: space-between; align-items: center; height: 29%; margin-left: 30px; } .day-val { width: 40%; } .prefix { display: inline-block; width: 6px; height: 14px; background: #ffffff; margin-right: 20px; } .zh-title { margin-left: 30px; padding-top: 30px; font-size: 30px; font-weight: 700; text-align: left; color: #ffffff; line-height: 32px; letter-spacing: 0.3px; font-family: AlibabaPuHuiTiB; } .en-title { margin-left: 30px; font-size: 14px; font-weight: 400; text-align: left; color: #ffffff; line-height: 32px; letter-spacing: -0.91px; font-family: AlibabaPuHuiTiR; }
05-31

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值