找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2789|回复: 2
收起左侧

stm32f103温度采集折线图源程序

[复制链接]
ID:142059 发表于 2019-8-7 12:01 | 显示全部楼层 |阅读模式
本帖最后由 Angle145 于 2019-8-8 16:32 编辑

51hei图片20190808163101.jpg MDK里把C99勾上,如还有问题的话请根据编译提示自己修改。(部分人的编译器会报错)。 红线:前天  黄线:昨天  绿线:今天。串口(串口5)发送hstytemp//会接收到7天内温度值,发送setsystime=年/月/日/时.分.秒//即可设置RTC。其他指令请到源码中查看。LCD:2.8寸320x240
RTC设置页面(功能已实现).jpg

FSC_STOSV4.9.7_ucGUI多页面温度折线图(20190625).7z

1.07 MB, 下载次数: 37, 下载积分: 黑币 -5

回复

使用道具 举报

ID:328014 发表于 2019-8-8 01:43 | 显示全部楼层
好东东啊,楼主的主程序:
  1. #include "fsc_stos.h"  //使用多任务内核

  2. int main(void)
  3. {
  4.   OS_MAIN();  //请到APP.c写代码。
  5. }

  6. /*本工程介绍:

  7. 2.8寸ISP彩屏
  8. FSC_STOS+uCGUI
  9. 主界面:24h温度折线图
  10.        绿线:今天温度
  11.        黄线:昨天温度
  12.        红线:前天温度
  13. 触屏:长按2s以上进入主设置界面
  14.       滑动:(按下屏幕,稍停0.5s左右再滑动,成功率较大)
  15.            向左-查看上一天温度折线图,最大可查看7天前   此方式灵敏度一般
  16.            向右-查看后一天温度折线图,左右循环查看      此方式灵敏度一般
  17.            向上-关闭前两天的折线同屏显示(方便对比)      此方式不太灵敏
  18.            向下-打开前两天的折线同屏显示               此方式不太灵敏
  19. 快捷指令:串口助手发送:
  20.          time=1919.5.4.13.15.10//      //年月日时分钞,以//结束  设置RTC时间
  21.          hstytemp//                    //查看7天内的温度情况(内存够大的话可以无限保存任意天数的温度信息)

  22. 工程文件结构:
  23.    Application文件夹存放GUI界面,WM_开头的C文件对应一个界面
  24.          Driver文件夹:驱动
  25.          HardwareDriver文件夹:板载的特殊硬件驱动
  26.          
  27.          GUI包含的文件夹:从AntiAlias到WM
  28.                其中:
  29.                                       有关移植部分:
  30.                                       GUI_X(带X表示外部,可修改)移植修改对象
  31.                                            GUI_X.c为时钟配置,即将硬件平台的定时器脉冲注入GUI成为GUI的运行动力
  32.                                                                                   (裸机工程时,一般作一个全局变量放在外部定时器的中断里累加即可,定时1ms)
  33.                    GUI_X_Touch.c为触屏移植,把触屏的两个xy坐标获取函数声进来调用即可。
  34.                                                                          参考:
  35.                                                                                                         int  GUI_TOUCH_X_MeasureX(void) {  //获取X点坐标 (GUI提供的接口函数)
  36.                                                                                                                 return RTouch_Read_XorY(CMD_RDX);  //CMD_RDX=0XD0  //用户提供的读X触点坐标
  37.                                                                                                         }

  38.                                                                                                         int  GUI_TOUCH_X_MeasureY(void) {  // 获取Y点坐标 (GUI提供的接口函数)
  39.                                                                                                                 return RTouch_Read_XorY(CMD_RDY);  //CMD_RDY=0X90  //用户提供的读y触点坐标
  40.                                                                                                         }
  41.                                                                         
  42.               LCDDriver  液晶屏驱动层  (屏幕初始化函数在LCDConf.h里添加)
  43.                                                              内含3个文件,属于3选1,选择其中一个用来作为液晶屏对接的接口层
  44.                                                                             这里选择的是LCDDummy.c,其他两个无用。
  45.                                                                          LCDDummy.c中只需要把屏幕的画点函数和读点函数声明进来并放进指定的函数内即可。
  46.                                                                             其他的屏幕操作函数如画线画矩形画圈等函数GUI默认已带,即是用调用的画点函数完成。
  47.                                                                                         缺点就是效率低,你也可以自己再把效率高的画线,矩,圈等的函数声明进来并在对应的函数内调用也行。
  48.                                                                                         总之一句话,画点和读点是必要的两个移植函数,其他可要可不要,非必须。
  49.                                                                                         画点函数必须有以下功能:能指定某种颜色来画一个点,即拥有至少3个参数:颜色,x坐标,y坐标。
  50.                       参考:
  51.                                                                                             void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex) //画点函数(GUI提供的接口函数)
  52.                                                                                                         {
  53.                                                                                                                 LCD_Color_DrawPoint(x,y,PixelIndex); //用户提供的画点函数
  54.                                                                                                         }
  55.                                                                                                         
  56.                                                                                                         unsigned int LCD_L0_GetPixelIndex(int x, int y) //读点函数(GUI提供的接口函数)
  57.                                                                                                         {
  58.                                                                                                                 return LCD_GetPoint(x,y); //用户提供的读点函数
  59.                                                                                                         }
  60.                                                                 填充完以上4个函数,触屏和显示屏的移植就完成了。
  61.                 接下来配置GUI的参数(即告诉GUI你的屏幕大小,触屏的识别范围,分配多少内存给它使用,需不需要其他功能等等)                                                               
  62.                                                                                                         
  63.                                                 GUI配置:
  64.                 Config文件夹
  65.                                                                        GUIConf.h - 对GUI性能配置:
  66.                                                                                                             是否持OS多任务刷屏。不建议,只用一个任务刷屏即可。
  67.                                                                                                                                                                         是否支持触屏。
  68.                                                                                                                                                                         文字编码方式。
  69.                                                                                                                                                                         默认字体。
  70.                                                                                                                                                                         分配给GUI自由动态配置使用的内存大小。
  71.                                                                                                                                                                         
  72.                                                                                                                                                                         是否支持窗口管理。WM_ 即window manage ,必须要。
  73.                                                                                                                                                                         GUI动态内存管理。
  74.                                           抗锯齿。一般不用。
  75.                                                                                                                                                                               
  76.                                                                                                 GUITouchConf.h -触屏配置:
  77.                                           设置触屏边界触摸AD值, 本工程的触摸ADC精度为12bit,范围:0-4095 ,无触屏时返回65535
  78.                                           X,Y触屏方向设置。(X,Y对调/镜像等)。
  79.                                           
  80.                         LCDConf.h    显示屏配置:
  81.                                                                                                                   屏幕分辨率。
  82.                                                                                                                                                                         像素位数。
  83.                                                                                                                                                                         显示屏驱动IC型号。
  84.                                                                                                                                                                         调色板格式。
  85.                                                                                                                                                                         红蓝反色交换。
  86.                                                                                                                                                                         屏幕初始化函数,用户提供。此处非函数填充形式,而是宏定替换形式。
  87.                                                                                                                                                                         
  88.                                                         做好以上就可以正常使用GUI了。                        

  89. FSC_STOS操作系统:
  90.               FSC_STOS文件夹:  
  91.                                                                   APP.c - 任务函数 (用户在此写代码)
  92.                                                                   FSC_STOS.h - 操作系统配置。
  93.               

  94. 硬件接口:

  95.      PA1 -- 用作ADC功能,读取电池电压,转为电池电量 (启明的开发板接了LED0,需要把LED拆下。)
  96.      PA14 - 用作外部供电检测,断电时作出相应动作。
  97.      PA15 - DS18B20传感器
  98.                  
  99.                  AT24C02 - 模拟IIC :PA11(SLC)  PA12(SDA)
  100.                  W25Q16  - 硬件SPI1: PA4-7 -> CS CLK MISO MOSI
  101.                  
  102.                  bluetooth:UART5: PC12 (TX)  PD2 (RX)
  103. */
复制代码

回复

使用道具 举报

ID:168038 发表于 2019-8-9 08:20 | 显示全部楼层
楼主厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表