资源简介
使用STM32CubeMX创建基础工程,在此基础上添加SSD1963驱动和XPT2046触摸驱动。为了方便初学者理解,在硬件驱动层上加入了显示中间层,实现硬件驱动分块。硬件连接和参数配置可以通过打开.ioc工程文件查看。
代码片段和文件信息
#include “24cxx.h“
#include “delay.h“
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32F407开发板
//24CXX 驱动代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2014/5/6
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
//初始化IIC接口
void AT24CXX_Init(void)
{
IIC_Init();//IIC初始化
}
//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址
//返回值 :读到的数据
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{
u8 temp=0;
IIC_Start();
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr>>8);//发送高地址
}else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //发送器件地址0XA0写数据
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr%256); //发送低地址
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0XA1); //进入接收模式
IIC_Wait_Ack();
temp=IIC_Read_Byte(0);
IIC_Stop();//产生一个停止条件
return temp;
}
//在AT24CXX指定地址写入一个数据
//WriteAddr :写入数据的目的地址
//DataToWrite:要写入的数据
void AT24CXX_WriteOneByte(u16 WriteAddru8 DataToWrite)
{
IIC_Start();
if(EE_TYPE>AT24C16)
{
IIC_Send_Byte(0XA0); //发送写命令
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr>>8);//发送高地址
}else IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //发送器件地址0XA0写数据
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr%256); //发送低地址
IIC_Wait_Ack();
IIC_Send_Byte(DataToWrite); //发送字节
IIC_Wait_Ack();
IIC_Stop();//产生一个停止条件
delay_ms(10);
}
//在AT24CXX里面的指定地址开始写入长度为Len的数据
//该函数用于写入16bit或者32bit的数据.
//WriteAddr :开始写入的地址
//DataToWrite:数据数组首地址
//Len :要写入数据的长度24
void AT24CXX_WriteLenByte(u16 WriteAddru32 DataToWriteu8 Len)
{
u8 t;
for(t=0;t {
AT24CXX_WriteOneByte(WriteAddr+t(DataToWrite>>(8*t))&0xff);
}
}
//在AT24CXX里面的指定地址开始读出长度为Len的数据
//该函数用于读出16bit或者32bit的数据.
//ReadAddr :开始读出的地址
//返回值 :数据
//Len :要读出数据的长度24
u32 AT24CXX_ReadLenByte(u16 ReadAddru8 Len)
{
u8 t;
u32 temp=0;
for(t=0;t {
temp<<=8;
temp+=AT24CXX_ReadOneByte(ReadAddr+Len-t-1);
}
return temp;
}
//检查AT24CXX是否正常
//这里用了24XX的最后一个地址(255)来存储标志字.
//如果用其他24C系列这个地址要修改
//返回1:检测失败
//返回0:检测成功
u8 AT24CXX_Check(void)
{
u8 temp;
temp=AT24CXX_ReadOneByte(255);//避免每次开机都写AT24CXX
if(temp==0X55)return 0;
else//排除第一次初始化的情况
{
AT24CXX_WriteOneByte(2550X55);
temp=AT24CXX_ReadOneByte(255);
if(temp==0X55)return 0;
}
return 1;
}
//在AT24CXX里面的指定地址开始读出指定个数的数据
//ReadAddr :开始读出的地址 对24c02为0~255
//pBuffer :数据数组首地址
//NumToRead:要读出数据的个数
void AT24CXX_Read(u16 ReadAddru8 *pBufferu16 NumToRead)
{
while(NumToRead)
{
*pBuffer++=AT2
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6370 2018-11-28 09:50 SSD1963-DISPLAY\.mxproject
文件 3818 2014-10-04 17:25 SSD1963-DISPLAY\BSP\24CXX\24cxx.c
文件 1485 2014-05-06 18:30 SSD1963-DISPLAY\BSP\24CXX\24cxx.h
文件 278 2018-11-12 16:56 SSD1963-DISPLAY\BSP\BSP_BEEP\bsp_beep.c
文件 139 2018-11-12 16:56 SSD1963-DISPLAY\BSP\BSP_BEEP\bsp_beep.h
文件 20518 2018-11-29 16:11 SSD1963-DISPLAY\BSP\SSD1963\SSD1963.c
文件 2004 2018-11-29 16:11 SSD1963-DISPLAY\BSP\SSD1963\SSD1963.h
文件 2783 2018-11-30 11:43 SSD1963-DISPLAY\BSP\XPT2046\XPT2046.c
文件 803 2018-11-30 10:42 SSD1963-DISPLAY\BSP\XPT2046\XPT2046.h
文件 4163 2018-11-28 09:50 SSD1963-DISPLAY\Core\Inc\main.h
文件 17333 2018-11-28 09:50 SSD1963-DISPLAY\Core\Inc\stm32f4xx_hal_conf.h
文件 3027 2018-11-28 09:50 SSD1963-DISPLAY\Core\Inc\stm32f4xx_it.h
文件 3570 2018-11-28 09:50 SSD1963-DISPLAY\Core\Inc\stm32_assert.h
文件 13701 2018-11-30 12:11 SSD1963-DISPLAY\Core\Src\main.c
文件 7451 2018-11-28 09:50 SSD1963-DISPLAY\Core\Src\stm32f4xx_hal_msp.c
文件 6132 2018-11-28 09:50 SSD1963-DISPLAY\Core\Src\stm32f4xx_it.c
文件 28181 2018-11-12 13:38 SSD1963-DISPLAY\Core\Src\system_stm32f4xx.c
文件 719923 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f401xc.h
文件 719923 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f401xe.h
文件 1228777 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f405xx.h
文件 1344524 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h
文件 606160 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f410cx.h
文件 606469 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f410rx.h
文件 601407 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f410tx.h
文件 723418 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f411xe.h
文件 1167059 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f412cx.h
文件 1253447 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f412rx.h
文件 1253447 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f412vx.h
文件 1253519 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f412zx.h
文件 1307927 2018-11-12 13:38 SSD1963-DISPLAY\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f413xx.h
............此处省略809个文件信息
- 上一篇:FANUC数控系统PMC编程技术
- 下一篇:总钻风摄像头K60代码
相关资源
- STM32F4小四轴代码
- 基于stm32F407的i2c双机通讯
- stm32F407 SPI1/SPI2 DMA 方式读写 CH376S
- STM32F407 W8782模块驱动代码
- STM32F427 ,429中文参考手册
- 基于IAR的STM32F407程序模板
- STM32F4+USB bulk FS
- 2019年电赛h题电磁曲线炮,stm32f407控制
- stm32f4xx+freeRTOS+LWIP移植
- STM32F4可调电子时钟系统课程设计
- stm32f4中用SD卡存储DCMI的图像
- stm32f407开发板实现485串口modbus协议通
- opus编解码移植stm32f407
- STM32F4开发指南-库函数版本_V1.1
- STM32F407,18电赛A题,非接触式电流检
- STM32F407编码器
- 正点原子STM32F407探索者PCB图+原理图
- STM32F407 USB Device HID Full Speed 例程
- ina226 stm32f4
- 基于STM32F4的US100超声波传感器测距
- STM32F407信号发生器整体代码.zip
- 基于STM32F429的语音识别交互系统
- Keil.STM32F4xx_DFP.2.15.0.zip
- STM32F4 AD采集DMA方式进行FFT计算
- STM32F4开发指南-寄存器版本_V1.1
- stm32f407驱动ws2818全彩灯7灯
- stm32f4硬件i2c读取ms5611
- STM32F4模拟示波器,基于正点原子,可
- 基于stm32f407飞控+stm32f103遥控sxy飞行器
- STM32F407参考手册
评论
共有 条评论