找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11991|回复: 17
收起左侧

STM32驱动16位高精度AD TM7705/AD7705源程序,带2.8寸TFT显示界面

  [复制链接]
ID:187624 发表于 2019-4-9 09:15 | 显示全部楼层 |阅读模式
最近在搞一个往届的电子设计大赛题目,用到AD7705就将它的程序移植到了原子的STM32F103ZET6上,供大家参考使用

制作出来的实物图如下:
2.8寸LCD显示屏界面:

2.8寸LCD显示屏界面

2.8寸LCD显示屏界面


硬件接线,直插原子NRF无线模块上就可以了:

硬件接线,直插原子NRF无线模块上就可以了

硬件接线,直插原子NRF无线模块上就可以了


单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"
  7. #include "TM7705.h"
  8. #include <stdio.h>
  9. #include <string.h>
  10. #include "INITUI.h"

  11. //TM7705/AD7705直插正点原子NRF无线模块端口,具体引脚自己查找

  12. int main(void)
  13. {         
  14.         int16_t x = 0,y = 0;   //定义点坐标   (-75<x<75)&(-50<y<50)
  15.         uint16_t adc1, adc2;  //定义ADC的采样值
  16.         delay_init();                     //延时函数初始化         
  17.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  18.         uart_init(115200);                 //串口初始化为115200
  19.          LED_Init();                             //LED端口初始化
  20.         LCD_Init();          //LCD初始化
  21.         UIINIT();   //界面初始化函数
  22. /*以上为LCD初始化*/
  23.   InitTM7705();   //初始化TM7705
  24.         
  25.         TM7705_CalibSelf(1);                /* 自校准。执行时间较长,约180ms */               
  26.         adc1 = TM7705_ReadAdc(1);                                
  27.         
  28.         TM7705_CalibSelf(2);                /* 自校准。执行时间较长,约180ms */
  29.         adc2 = TM7705_ReadAdc(2);        
  30.         
  31.         while(1)
  32.         {
  33.                 /*空闲时执行的函数*/
  34.                
  35.                 #if 1        
  36.                         /* 双通道切换采样,执行一轮实际那约 160ms */                        
  37.                         adc1 = TM7705_ReadAdc(1);        /* 执行时间 80ms */               
  38.                         adc2 = TM7705_ReadAdc(2);        /* 执行时间 80ms */
  39.                 #else
  40.                         /* 如果只采集1个通道,则刷新速率 50Hz (缺省设置的,最大可以设置为500Hz) */
  41.                         adc1 = TM7705_ReadAdc(1);        /* 执行时间 20ms (50Hz速率刷新时) */               
  42.                         adc2 = 0;
  43.                 #endif
  44.                
  45.                                 /* 打印采集数据 */
  46.                 {
  47.                         int volt1, volt2;
  48.                         
  49.                         /* 计算实际电压值(近似估算的),如需准确,请进行校准 */
  50.                         volt1 = (adc1 * 5000) / 65535;
  51.                         volt2 = (adc2 * 5000) / 65535;
  52.                         
  53.                         /* 对采样的电压值进行数学分析并定位xy的值 */
  54.                         x = locatedx(adc1,adc2,volt1,volt2);
  55.                         y = locatedy(adc1,adc2,volt1,volt2);
  56.                         
  57.                         /* 打印ADC采样结果 */        
  58.                         printAD(adc1,adc2,volt1,volt2,x,y);
  59.                 }
  60.                
  61.         }
  62. }
复制代码

所有资料51hei提供下载:
TFTLCD-TM7705.7z (226.65 KB, 下载次数: 409)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:807108 发表于 2020-7-23 11:07 | 显示全部楼层
为什么我烧录程序后,LCD屏直接是黑的,必须要复位后才显示呢?
回复

使用道具 举报

ID:146170 发表于 2019-5-8 11:55 | 显示全部楼层
这个干什么用的
  

还有人要它
回复

使用道具 举报

ID:376705 发表于 2019-8-2 09:29 | 显示全部楼层
kEviN.H 发表于 2019-5-8 11:55
这个干什么用的
  

学习技术用的啊
回复

使用道具 举报

ID:32596 发表于 2019-12-30 15:54 | 显示全部楼层
这个程序测量精英版上的3.3v,怎么读出来是4.2v,有没有完整显示的整个流程。
回复

使用道具 举报

ID:32596 发表于 2019-12-30 15:57 | 显示全部楼层
这个程序测量精英版上的3.3v,读出来是4.2v,用的是TM7705模块(安富莱版本),请问有没有完整的测量电压的图片,我想看下怎么接线的。
回复

使用道具 举报

ID:408363 发表于 2020-2-7 12:49 | 显示全部楼层
请问这个坐标轴怎么显示呐
回复

使用道具 举报

ID:709948 发表于 2020-4-8 11:03 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:252601 发表于 2020-4-12 12:19 | 显示全部楼层
mark ,thanks
回复

使用道具 举报

ID:556520 发表于 2020-7-16 15:56 | 显示全部楼层
tm7705和ad7705程序有差别吗?
回复

使用道具 举报

ID:228467 发表于 2020-7-24 12:05 | 显示全部楼层
练习生 发表于 2020-7-23 11:07
为什么我烧录程序后,LCD屏直接是黑的,必须要复位后才显示呢?

在keil的设置里看下是不是没在 下载完程序就运行 的前面打√
回复

使用道具 举报

ID:238878 发表于 2020-12-2 14:17 | 显示全部楼层
我的显示和你一样,但是读数一直不变化,一直是一个数
回复

使用道具 举报

ID:238878 发表于 2020-12-2 14:21 | 显示全部楼层
我的显示和你一样,但是一直是一个度数,没怎么变化
回复

使用道具 举报

ID:574708 发表于 2021-2-28 19:21 | 显示全部楼层
读数有问题啊 这个程序 3.3v 读出来是4.17v
回复

使用道具 举报

ID:1021208 发表于 2022-4-24 14:05 | 显示全部楼层
上善若水001 发表于 2020-7-24 12:05
在keil的设置里看下是不是没在 下载完程序就运行 的前面打√

你好,请问STM32f103c8t6用AD7705的16位adc可以用这个代码吗
回复

使用道具 举报

ID:250090 发表于 2022-10-24 08:58 | 显示全部楼层

这个程序测量精英版上的3.3v,怎么读出来是4.2v,有没有完整显示的整个流程。
回复

使用道具 举报

ID:250090 发表于 2022-10-24 08:59 | 显示全部楼层

这个程序测量精英版上的3.3v,怎么读出来是4.2v,有没有完整显示的整个流程。你好,请问STM32f103c8t6用AD7705的16位adc可以用这个代码吗
回复

使用道具 举报

ID:648186 发表于 2023-4-30 03:35 来自手机 | 显示全部楼层
Thanks for your share!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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