first commit

This commit is contained in:
KacperLa 2026-01-15 10:21:39 -05:00
commit 9005e49d82
3071 changed files with 1941927 additions and 0 deletions

View file

@ -0,0 +1,150 @@
/*****************************************************************************
* | File : DEV_Config.c
* | Author : Waveshare team
* | Function : Hardware underlying interface
* | Info :
* Used to shield the underlying layers of each master
* and enhance portability
*----------------
* | This version: V2.0
* | Date : 2018-10-30
* | Info :
# ******************************************************************************
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documnetation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#include "DEV_Config.h"
#include "stm32f1xx_hal_spi.h"
extern SPI_HandleTypeDef hspi1;
void DEV_SPI_WriteByte(UBYTE value)
{
HAL_SPI_Transmit(&hspi1, &value, 1, 1000);
}
void DEV_SPI_Write_nByte(UBYTE *value, UDOUBLE len)
{
HAL_SPI_Transmit(&hspi1, value, len, 1000);
}
void DEV_GPIO_Mode(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, UWORD Mode)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(Mode == 0) {
GPIO_InitStruct.Pin = GPIO_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
} else {
GPIO_InitStruct.Pin = GPIO_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// Debug (" %d OUT \r\n",Pin);
}
}
void DEV_GPIO_Init()
{
HAL_SPI_MspDeInit(&hspi1);
//HAL_SPI_DeInit(&hspi1);
// __HAL_RCC_SPI1_CLK_DISABLE();
// HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_7);
}
void DEV_SPI_Init()
{
HAL_SPI_MspInit(&hspi1);
//HAL_SPI_DeInit(&hspi1);
// __HAL_RCC_SPI1_CLK_DISABLE();
// HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_7);
}
void DEV_SPI_SendData(UBYTE Reg)
{
UBYTE i,j=Reg;
DEV_GPIO_Mode(EPD_MOSI_PIN, 1);
DEV_GPIO_Mode(EPD_SCLK_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
for(i = 0; i<8; i++)
{
DEV_Digital_Write(EPD_SCLK_PIN, 0);
if (j & 0x80)
{
DEV_Digital_Write(EPD_MOSI_PIN, 1);
}
else
{
DEV_Digital_Write(EPD_MOSI_PIN, 0);
}
DEV_Digital_Write(EPD_SCLK_PIN, 1);
j = j << 1;
}
DEV_Digital_Write(EPD_SCLK_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 1);
}
UBYTE DEV_SPI_ReadData()
{
UBYTE i,j=0xff;
DEV_GPIO_Mode(EPD_MOSI_PIN, 0);
DEV_GPIO_Mode(EPD_SCLK_PIN, 1);
DEV_Digital_Write(EPD_CS_PIN, 0);
for(i = 0; i<8; i++)
{
DEV_Digital_Write(EPD_SCLK_PIN, 0);
j = j << 1;
if (DEV_Digital_Read(EPD_MOSI_PIN))
{
j = j | 0x01;
}
else
{
j= j & 0xfe;
}
DEV_Digital_Write(EPD_SCLK_PIN, 1);
}
DEV_Digital_Write(EPD_SCLK_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 1);
return j;
}
int DEV_Module_Init(void)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
DEV_Digital_Write(EPD_PWR_PIN, 1);
DEV_Digital_Write(EPD_RST_PIN, 1);
return 0;
}
void DEV_Module_Exit(void)
{
DEV_Digital_Write(EPD_DC_PIN, 0);
DEV_Digital_Write(EPD_CS_PIN, 0);
//close 5V
DEV_Digital_Write(EPD_PWR_PIN, 0);
DEV_Digital_Write(EPD_RST_PIN, 0);
}

View file

@ -0,0 +1,95 @@
/*****************************************************************************
* | File : DEV_Config.h
* | Author : Waveshare team
* | Function : Hardware underlying interface
* | Info :
* Used to shield the underlying layers of each master
* and enhance portability
*----------------
* | This version: V2.0
* | Date : 2018-10-30
* | Info :
* 1.add:
* UBYTE\UWORD\UDOUBLE
* 2.Change:
* EPD_RST -> EPD_RST_PIN
* EPD_DC -> EPD_DC_PIN
* EPD_CS -> EPD_CS_PIN
* EPD_BUSY -> EPD_BUSY_PIN
* 3.Remote:
* EPD_RST_1\EPD_RST_0
* EPD_DC_1\EPD_DC_0
* EPD_CS_1\EPD_CS_0
* EPD_BUSY_1\EPD_BUSY_0
* 3.add:
* #define DEV_Digital_Write(_pin, _value) bcm2835_gpio_write(_pin, _value)
* #define DEV_Digital_Read(_pin) bcm2835_gpio_lev(_pin)
* #define DEV_SPI_WriteByte(__value) bcm2835_spi_transfer(__value)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
******************************************************************************/
#ifndef _DEV_CONFIG_H_
#define _DEV_CONFIG_H_
#include "main.h"
#include "stm32f1xx_hal.h"
#include "stm32f1xx_hal_gpio.h"
#include <stdint.h>
#include <stdio.h>
/**
* data
**/
#define UBYTE uint8_t
#define UWORD uint16_t
#define UDOUBLE uint32_t
/**
* e-Paper GPIO
**/
#define EPD_RST_PIN RST_GPIO_Port, RST_Pin
#define EPD_DC_PIN DC_GPIO_Port, DC_Pin
#define EPD_PWR_PIN PWR_GPIO_Port, PWR_Pin
#define EPD_CS_PIN SPI_CS_GPIO_Port, SPI_CS_Pin
#define EPD_BUSY_PIN BUSY_GPIO_Port, BUSY_Pin
#define EPD_MOSI_PIN DIN_GPIO_Port, DIN_Pin
#define EPD_SCLK_PIN SCK_GPIO_Port, SCK_Pin
/**
* GPIO read and write
**/
#define DEV_Digital_Write(_pin, _value) HAL_GPIO_WritePin(_pin, _value == 0? GPIO_PIN_RESET:GPIO_PIN_SET)
#define DEV_Digital_Read(_pin) HAL_GPIO_ReadPin(_pin)
/**
* delay x ms
**/
#define DEV_Delay_ms(__xms) HAL_Delay(__xms);
void DEV_SPI_WriteByte(UBYTE value);
void DEV_SPI_Write_nByte(UBYTE *value, UDOUBLE len);
int DEV_Module_Init(void);
void DEV_Module_Exit(void);
void DEV_GPIO_Init(void);
void DEV_SPI_Init(void);
void DEV_SPI_SendData(UBYTE Reg);
UBYTE DEV_SPI_ReadData(void);
#endif

View file

@ -0,0 +1,24 @@
/*****************************************************************************
* | File : Debug.h
* | Author : Waveshare team
* | Function : debug with printf
* | Info :
* Image scanning
* Please use progressive scanning to generate images or fonts
*----------------
* | This version: V1.0
* | Date : 2018-01-11
* | Info : Basic version
*
******************************************************************************/
#ifndef __DEBUG_H
#define __DEBUG_H
#define DEBUG 1
#if DEBUG
#define Debug(__info,...) printf("Debug: " __info,##__VA_ARGS__)
#else
#define Debug(__info,...)
#endif
#endif