初次尝试请不要使用过高的速率

严格按照发送8bit命令,再接收16bit或2次8bit数据来进行,不要有多余的操作,否则数据紊乱。

每次转换必须在开始后(接收到 start)的 1.6mS 内 完成,否则输入采样保持电路取样的信号会逐渐被放电衰减,影响转换结果。

#include <stdlib.h>
//两个接口函数
void send_8way(uint8_t data)
{HAL_SPI_Transmit(spi_, &data, 1, 1000); //不配置硬件片选(NSS)功能,手动片选
}uint8_t receiv_8way(void)
{uint8_t data;HAL_SPI_Receive(spi_, &data, 1, 1000);return data;
}int cmp(const void *a, const void *b)
{return *(uint16_t *)a - *(uint16_t *)b; //从小到大排序(b-a则是从大到小)。需要与被测类型一致,否则排序乱七八糟
}static const uint8_t count = 9; //采集次数
uint16_t x_data[count], y_data[count];
void XPT2046_Rd_Addata(void)
{cs2_0(); //片选for (uint8_t i = 0; i < count; i++){send_8way(0xd0); //发送命令x = receiv_8way();x <<= 8;x |= receiv_8way();x >>= 4;x_data[i] = x;send_8way(0x90);y = receiv_8way();y <<= 8;y |= receiv_8way();y >>= 4;y_data[i] = y;}qsort(x_data, count, sizeof(x_data[0]), cmp); //stdlib.h里的排序函数qsort(y_data, count, sizeof(y_data[0]), cmp);x = x_data[count >> 1]; //取中间值y = y_data[count >> 1];cs2_1();
}

STM32 HAL 硬件SPI XPT2046相关推荐

  1. STM32 HAL 驱动SPI总线2.13寸电子纸墨水屏

    STM32 HAL 驱动SPI总线2.13寸电子纸墨水屏 电子纸墨水屏具有断电界面不失和低反光度的护眼效果.QYEG0213RWS800是2.13寸黑白红三色墨水屏,分辨率为250*122. STM3 ...

  2. STM32 HAL 硬件IIC+DMA+简单图形库控制OLED

    目录 前言 一.建立工程 二.编写和移植 前期准备 驱动部分修改 三.使用和验证 结论 (2022年1月22日重制)本文主要是移植带简单图形库的程序,如果只是实现DMA控制,建议看[0.96寸 OLE ...

  3. STM32使用硬件SPI驱动RC522门禁模块

    0.前言 RC522射频门禁识别模块非常常用,某宝卖家提供的程序基本都是使用软件模拟SPI的方式进行驱动的,但是实测使用软件模拟SPI识别速率.准确性没有硬件SPI驱动时高,因此本篇博客用于记录使用S ...

  4. 晶联讯JLX12864G-290液晶,STM32+HAL库 SPI显示成功。

    JLX12864G_290_PN.h #ifndef __JLX12864G_290_PN_H__ #define __JLX12864G_290_PN_H__ /* 包含头文件 ---------- ...

  5. STM32 HAL 硬件I2C HTU21D

    主要用到stm32自带的库函数,因为库函数没有等待时间,所以不兼容,把程序拷贝出来重写,"I2C_RequestMemoryRead"函数的 "/* Generate R ...

  6. FM1722/02NL+STM32硬件SPI调试笔记

    1.介绍 FM17XX 系列通用非接触读卡机芯片是复旦微电子股份有限公司设计的,基于 ISO14443 标准的系 列通用非接触卡读卡机芯片,采用 0.6 微米 CMOS EEPROM 工艺. FM17 ...

  7. #STM32标准固件库的硬件SPI(NSS为软件)封装函数库

    #基于STM32标准固件库的硬件SPI(NSS为软件)封装函数库: 最近来回顾之前写过的SPI_Flash,打算重写一次SPI配置文件 spi协议最大的特点大概就是全双工了,因此stm32硬件spi的 ...

  8. STM32F103C8T6硬件SPI控制6针/7针0.96寸OLED显示屏

    OLED介绍 OLED主要参数 1.高分辨率:12864(和12864LCD相同分辨率,但该OLED屏的单位面积像素点多). 2.广可视角度:大于160°. 3.低功耗:正常显示时0.04W. 4.宽 ...

  9. STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片

    STM32CubeMX | 基于STM32使用HAL库硬件SPI驱动WK2124一拖四SPI转四路串口芯片 STM32基础工程生成 首先使用STM32CUBEMX生成STM32的基础工程,配置时钟到7 ...

最新文章

  1. html+css学习笔记 [基础1]
  2. 第八篇:Docker镜像结构原理
  3. nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED
  4. Redis数据库(二)——数据类型
  5. jzoj6309-完全背包【贪心,背包】
  6. 动态生成表格、隐藏表格、选中删除任意行、jquery、输入验证
  7. NYOJ276 比较字母大小
  8. 支付宝sdk java对接_java后台支付宝app支付调用sdk进行支付
  9. IPQ4019MTD分区生成的过程
  10. 纸质办公电子化——iWebOffice中间件
  11. scp登录The authenticity of host 192.168.0.xxx can't be established. 的问题
  12. 【中级—,android开发入门pdf
  13. 电脑开机黑屏---只有一个鼠标箭头处理办法
  14. 全球地形起伏模型ETOPO1
  15. 如何批量将多个 PDF 文档快速合并成一个文档
  16. 网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient
  17. 64位操作系统安装——Linux(Ubuntu 16.04)+Windows7+iNode
  18. condaerror unable to create prefix directory check that you have sufficient permissions
  19. 安卓逆向-马蜂窝zzzghostsigh算法还原--魔改的SHA-1
  20. 摩尔斯电码(Python字典实现)

热门文章

  1. 【机器学习】KNN算法及其用KNN解决字体反爬
  2. Android图片底部居中的ImageView
  3. python异常处理--猜字游戏
  4. 网络驱动->PHY驱动调试
  5. 索尼android 6.0 root,索尼Xperia Z3C 6.0 root教程_Sony Z3C获取6.0的root权限
  6. Docker搭建Redis主从同步详细教程
  7. 远程桌面,身份验证错误:CredSSP加密Oracle修正。要求的函数不正确等解决办法
  8. 【css动画】移动的小车
  9. X86指令编码内幕 --- 指令 Opcode 码
  10. 动态库.so(共享库)的制作和使用