### Install Jetson.GPIO Library Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/readme_jetson_CN.txt Installs the Jetson.GPIO library for controlling the GPIO pins on the Jetson Nano. ```bash sudo pip install Jetson.GPIO ``` ```bash sudo pip3 install Jetson.GPIO ``` -------------------------------- ### Raspberry Pi SPI and Python Setup Source: https://context7.com/waveshareteam/e-paper/llms.txt Enables the SPI interface on Raspberry Pi using raspi-config, installs necessary Python dependencies via pip, and installs the waveshare-epd package. Includes commands to run a test example and compile the C library. ```bash # Enable SPI interface on Raspberry Pi sudo raspi-config # Navigate to: Interface Options -> SPI -> Enable # Install Python dependencies cd RaspberryPi_JetsonNano/python sudo pip3 install -r requirements.txt # Or install directly sudo pip3 install spidev RPi.GPIO Pillow # Install the waveshare-epd package sudo python3 setup.py install # Run example (match your display model) cd examples python3 epd_2in13_V4_test.py # For C library compilation cd ../c make clean make sudo ./epd ``` -------------------------------- ### Install Python 2 Dependencies Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/readme_rpi_EN.txt Use these commands to install the necessary libraries for Python 2 environments. ```bash sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo pip install RPi.GPIO ``` -------------------------------- ### Install Python 3 Dependencies Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/readme_rpi_EN.txt Use these commands to install the necessary libraries for Python 3 environments. ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo pip3 install RPi.GPIO ``` -------------------------------- ### Install Python Pip and PIL Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/readme_jetson_CN.txt Installs pip and the Python Imaging Library (PIL) required for e-paper display control on Jetson Nano. ```bash sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil ``` ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil ``` -------------------------------- ### Install Python Libraries for Raspberry Pi Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/3in97_e-Paper/RaspberryPi_JetsonNano/python/readme_rpi_EN.txt Installs necessary Python libraries for Raspberry Pi using apt-get and pip. ```bash sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo pip install RPi.GPIO ``` -------------------------------- ### HAL_DMA_Start Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Starts the DMA transfer. ```APIDOC ## HAL_DMA_Start ### Description Starts the DMA transfer with the provided source and destination addresses. ### Method Function Call ### Parameters - **hdma** (DMA_HandleTypeDef*) - Required - Pointer to a DMA_HandleTypeDef structure - **SrcAddress** (uint32_t) - Required - Source memory address - **DstAddress** (uint32_t) - Required - Destination memory address - **DataLength** (uint32_t) - Required - Length of data to be transferred ``` -------------------------------- ### Install Python Libraries for Raspberry Pi (Python 3) Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/3in97_e-Paper/RaspberryPi_JetsonNano/python/readme_rpi_EN.txt Installs necessary Python 3 libraries for Raspberry Pi using apt-get and pip3. ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo pip3 install RPi.GPIO ``` -------------------------------- ### Install Python 3 Dependencies Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/readme_jetson_EN.txt Commands to install the necessary Python 3 libraries for the e-paper driver on Jetson Nano. ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo pip3 install Jetson.GPIO ``` -------------------------------- ### Install Python 2 Dependencies Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/readme_jetson_EN.txt Commands to install the necessary Python 2 libraries for the e-paper driver on Jetson Nano. ```bash sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo pip install Jetson.GPIO ``` -------------------------------- ### Install Python Libraries for Jetson Nano Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/readme_jetson_EN.txt Install necessary Python libraries using apt-get and pip for Jetson Nano. Ensure you use the correct pip version (pip for Python 2 or pip3 for Python 3). ```bash sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo pip install Jetson.GPIO ``` ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo pip3 install Jetson.GPIO ``` -------------------------------- ### Compile-time EPD Define Example Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/c/list.txt To use a specific EPD model, such as the 7.5inch e-Paper (B) (V2), set the EPD define during the make process. This ensures the correct drivers and configurations are used for your display. ```bash sudo make clean sudo make EPD=epd7in5bV2 ``` -------------------------------- ### Install Python Libraries for E-Paper Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/readme_rpi_EN.txt Installs necessary Python libraries for e-paper display control on Raspberry Pi or Jetson Nano. Ensure you use the correct pip version (pip or pip3) based on your Python installation. ```bash sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo pip install RPi.GPIO ``` ```bash sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo pip3 install RPi.GPIO ``` -------------------------------- ### Module Initialization and Exit Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10.85inch_e-Paper/STM32-F103ZET6/User/Readme_EN.txt Functions to initialize the module and handle power-down states. ```c Void DEV_Module_Init(void); Void DEV_Module_Exit(void); ``` -------------------------------- ### Perform Basic Display Operations in C Source: https://context7.com/waveshareteam/e-paper/llms.txt Initializes the display hardware, allocates a memory buffer, and draws primitives using the GUI_Paint library. ```c #include "DEV_Config.h" #include "EPD_2in13_V4.h" #include "GUI_Paint.h" #include int main(void) { // Initialize hardware interface if (DEV_Module_Init() != 0) { return -1; } // Initialize display EPD_2in13_V4_Init(); EPD_2in13_V4_Clear(); // Allocate image buffer UWORD Imagesize = ((EPD_2in13_V4_WIDTH % 8 == 0) ? (EPD_2in13_V4_WIDTH / 8) : (EPD_2in13_V4_WIDTH / 8 + 1)) * EPD_2in13_V4_HEIGHT; UBYTE *BlackImage = (UBYTE *)malloc(Imagesize); if (BlackImage == NULL) { return -1; } // Create image canvas (90 degree rotation for landscape) Paint_NewImage(BlackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 90, WHITE); Paint_SelectImage(BlackImage); Paint_Clear(WHITE); // Draw graphics primitives Paint_DrawPoint(10, 10, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); Paint_DrawLine(20, 10, 70, 60, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); Paint_DrawRectangle(20, 10, 70, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); Paint_DrawRectangle(85, 10, 135, 60, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); Paint_DrawCircle(45, 85, 20, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); // Draw text Paint_DrawString_EN(140, 15, "Waveshare", &Font16, BLACK, WHITE); Paint_DrawNum(140, 40, 12345, &Font16, BLACK, WHITE); // Send to display EPD_2in13_V4_Display(BlackImage); DEV_Delay_ms(3000); // Clean up EPD_2in13_V4_Clear(); EPD_2in13_V4_Sleep(); free(BlackImage); DEV_Module_Exit(); return 0; } ``` -------------------------------- ### System Initialization Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10in2_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Functions related to system initialization. ```APIDOC ## SystemInit ### Description Initializes the system. ### Method N/A ### Endpoint N/A ### Parameters N/A ### Request Example N/A ### Response N/A ## SystemCoreClockUpdate ### Description Updates the system core clock. ### Method N/A ### Endpoint N/A ### Parameters N/A ### Request Example N/A ### Response N/A ``` -------------------------------- ### System Initialization API Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/4inch_e-Paper_E/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Core system functions for initializing the HAL and system tick. ```APIDOC ## HAL_Init ### Description Initializes the Flash interface, the NVIC, and the Systick. ## HAL_InitTick ### Description Initializes the system tick timer to provide a time base. ## HAL_GetTick ### Description Returns the current system tick value. ``` -------------------------------- ### USART Initialization and MSP Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2.9inch_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Information about MX_USART1_UART_Init and HAL_UART_MspInit functions, including stack usage and call chains. ```APIDOC ## USART Initialization and MSP ### MX_USART1_UART_Init * **Details**: Thumb, 48 bytes, Stack size 8 bytes * **Source File**: usart.o(.text) * **Stack Usage**: Max Depth = 96 * **Call Chain**: MX_USART1_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init * **Calls**: HAL_UART_Init, Error_Handler * **Called By**: main ### HAL_UART_MspInit * **Details**: Thumb, 100 bytes, Stack size 32 bytes * **Source File**: usart.o(.text) * **Stack Usage**: Max Depth = 72 * **Call Chain**: HAL_UART_MspInit ⇒ HAL_GPIO_Init * **Calls**: HAL_GPIO_Init * **Called By**: HAL_UART_Init, HAL_MultiProcessor_Init, HAL_LIN_Init, HAL_HalfDuplex_Init ``` -------------------------------- ### HAL UART GetState Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in15_e-Paper_B/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Gets the current UART state. ```APIDOC ## HAL_UART_GetState ### Description Gets the current state of the UART peripheral. ``` -------------------------------- ### Main Function and Initialization Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2.9inch_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Details of the main function and its calls to various initialization routines and HAL functions. ```APIDOC ## Main Function and Initialization ### main * **Details**: Thumb, 36 bytes, Stack size 0 bytes * **Source File**: main.o(.text) * **Stack Usage**: Max Depth = 752 * **Call Chain**: main ⇒ EPD_2in9g_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf * **Calls**: MX_USART1_UART_Init, MX_SPI1_Init, MX_GPIO_Init, HAL_Init, HAL_Delay, EPD_2in9g_test, SystemClock_Config * **Address Reference Count**: 1 * **References**: entry9a.o(.ARM.Collect$$$$0000000B) ``` -------------------------------- ### HAL UART GetError Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in15_e-Paper_B/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Gets the current UART error code. ```APIDOC ## HAL_UART_GetError ### Description Gets the current error code for the UART peripheral. ``` -------------------------------- ### HAL_SPI_Init Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Initializes the SPI peripheral according to the specified parameters. ```APIDOC ## HAL_SPI_Init ### Description Initializes the SPI peripheral. ### Method Function Call ### Parameters - **hspi** (SPI_HandleTypeDef*) - Required - Pointer to a SPI_HandleTypeDef structure that contains the configuration information for the specified SPI module. ``` -------------------------------- ### DMA Functions Source: https://github.com/waveshareteam/e-paper/blob/master/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Functions for initializing, de-initializing, starting, stopping, and managing DMA transfers. ```APIDOC ## HAL_DMA_Init ### Description Initializes the DMA according to the specified parameters. ### Method Not specified (typically called internally or during system initialization) ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_DeInit ### Description De-initializes the DMA. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_Start ### Description Starts the DMA transfer. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_Start_IT ### Description Starts the DMA transfer with interrupt enabled. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_Abort ### Description Aborts the DMA transfer. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_Abort_IT ### Description Aborts the DMA transfer with interrupt enabled. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_PollForTransfer ### Description Polls for the completion of a DMA transfer. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_IRQHandler ### Description DMA interrupt handler. ### Method Not specified (typically called by the interrupt vector) ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_RegisterCallback ### Description Registers a user DMA callback. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_UnRegisterCallback ### Description Unregisters a user DMA callback. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_GetState ### Description Gets the DMA state. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ## HAL_DMA_GetError ### Description Gets the DMA error code. ### Method Not specified ### Endpoint N/A ### Parameters None explicitly listed in the provided text. ### Request Example N/A ### Response N/A ``` -------------------------------- ### HAL_UART_Init Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/3in5_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Initializes the UART peripheral with the specified configuration. ```APIDOC ## HAL_UART_Init ### Description Initializes the UART mode according to the specified parameters in the UART_InitTypeDef and creates the associated handle. ### Method Function Call ### Endpoint HAL_UART_Init(UART_HandleTypeDef *huart) ### Parameters - **huart** (UART_HandleTypeDef*) - Required - Pointer to a UART_HandleTypeDef structure that contains the configuration information for the specified UART module. ``` -------------------------------- ### DMA Management Functions Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10.85inch_e-Paper/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Functions for initializing, starting, and managing Direct Memory Access (DMA) transfers. ```APIDOC ## HAL_DMA_Init ### Description Initializes the DMA controller. ### Method Function Call ## HAL_DMA_Start ### Description Starts the DMA transfer. ### Method Function Call ## HAL_DMA_Abort ### Description Aborts the current DMA transfer. ### Method Function Call ``` -------------------------------- ### HAL System Initialization Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/13.3inch_e-Paper_E/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Functions for initializing the system, managing ticks, and handling delays. ```APIDOC ## HAL_Init ### Description Initializes the Flash interface, the NVIC setup, and the Systick timer. ### Method Function Call ### Parameters None ## HAL_Delay ### Description Provides a delay in milliseconds based on the system tick. ### Method Function Call ### Parameters - **Delay** (uint32_t) - Required - The delay time in milliseconds. ``` -------------------------------- ### Telnet Terminal Configuration Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in13_e-Paper_G/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM23_config.txt Configure settings for Telnet terminals, including command-line execution, mode, start behavior, port, and output suppression. ```APIDOC ## Telnet Terminal Configuration ### Description Configure settings for Telnet terminals, including command-line execution, mode, start behavior, port, and output suppression. ### Parameters #### Component: fvp_mps2.telnetterminal1 - **terminal_command** (string, init-time) - Optional - Commandline to launch a terminal application and connect to the opened TCP port. Keywords %port and %title will be replaced with the opened port number and component name respectively. An empty string (default behaviour) will launch xterm (Linux) or telnet.exe (Windows). #### Component: fvp_mps2.telnetterminal2 - **mode** (string, init-time) - Optional - Terminal initialisation mode. Default: 'telnet'. - **start_telnet** (bool, init-time) - Optional - Start telnet if nothing connected. Default: 1. - **start_port** (int, init-time) - Optional - Telnet TCP Port Number. Default: 0x1388. Range: [0x0..0xFFFFFFFF]. - **quiet** (bool, init-time) - Optional - Avoid output on stdout/stderr. Default: 0. - **terminal_command** (string, init-time) - Optional - Commandline to launch a terminal application and connect to the opened TCP port. Keywords %port and %title will be replaced with the opened port number and component name respectively. An empty string (default behaviour) will launch xterm (Linux) or telnet.exe (Windows). ``` -------------------------------- ### Telnet Terminal Configuration Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/4inch_e-Paper_E/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM23_config.txt Configure settings for Telnet terminals, including command-line execution, mode, start behavior, port, quiet mode, and output files. ```APIDOC ## Telnet Terminal Configuration ### Description Configure settings for Telnet terminals, including command-line execution, mode, start behavior, port, quiet mode, and output files. ### Parameters #### Component: fvp_mps2.telnetterminal1 - **terminal_command** (string, init-time) - Optional - Commandline to launch a terminal application and connect to the opened TCP port. Keywords %port and %title will be replaced with the opened port number and component name respectively. An empty string (default behaviour) will launch xterm (Linux) or telnet.exe (Windows). #### Component: fvp_mps2.telnetterminal2 - **mode** (string, init-time) - Optional - Terminal initialisation mode. Default: 'telnet'. - **start_telnet** (bool, init-time) - Optional - Start telnet if nothing connected. Default: 1. - **start_port** (int, init-time) - Optional - Telnet TCP Port Number. Default: 0x1388. Range: [0x0..0xFFFFFFFF]. - **quiet** (bool, init-time) - Optional - Avoid output on stdout/stderr. Default: 0. - **terminal_command** (string, init-time) - Optional - Commandline to launch a terminal application and connect to the opened TCP port. Keywords %port and %title will be replaced with the opened port number and component name respectively. An empty string (default behaviour) will launch xterm (Linux) or telnet.exe (Windows). ``` -------------------------------- ### GPIO and SPI Initialization Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2.9inch_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Information regarding the MX_GPIO_Init and MX_SPI1_Init functions, including their stack usage and call chains. ```APIDOC ## GPIO and SPI Initialization ### MX_GPIO_Init * **Details**: Thumb, 86 bytes, Stack size 32 bytes * **Source File**: gpio.o(.text) * **Stack Usage**: Max Depth = 72 * **Call Chain**: MX_GPIO_Init ⇒ HAL_GPIO_Init * **Calls**: HAL_GPIO_WritePin, HAL_GPIO_Init * **Called By**: main ### MX_SPI1_Init * **Details**: Thumb, 62 bytes, Stack size 8 bytes * **Source File**: spi.o(.text) * **Stack Usage**: Max Depth = 88 * **Call Chain**: MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init * **Calls**: HAL_SPI_Init, Error_Handler * **Called By**: main ``` -------------------------------- ### HAL_Init Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/7in5_e-Paper_H/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Initializes the HAL library, including the tick source and NVIC priority grouping. ```APIDOC ## HAL_Init ### Description Initializes the Flash interface, the NVIC, and the Systick interrupt. It is typically called at the beginning of the main function. ### Method Internal Function Call ### Endpoint HAL_Init ``` -------------------------------- ### Initialize and Exit E-Paper Module Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/c/readme_EN.txt These functions handle the initialization and exit processing for the e-paper module, including GPIO setup. DEV_Module_Exit() can put the module into a low-power state. ```c void DEV_Module_Init(void); void DEV_Module_Exit(void); ``` -------------------------------- ### System PPU Configuration Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in15_e-Paper_B/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM33_config.txt Configure the System PPU component. ```APIDOC ## System PPU Configuration ### Description Configure the System PPU component, specifically the use of the active signal. ### Parameters #### Init-time Parameters - **fvp_mps2.sys_ppu.use_active_signal** (bool) - Optional - Use device-active signal. Default is 0. ``` -------------------------------- ### System PPU Configuration Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2.9inch_e-Paper_G/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM33_DSP_FP_config.txt Configure the System PPU (Power, Performance, and Utility) settings, specifically the use of the active signal. ```APIDOC ## System PPU Configuration ### Description Configure the System PPU (Power, Performance, and Utility) settings, specifically the use of the active signal. ### Parameters #### Init-time Parameters - **fvp_mps2.sys_ppu.use_active_signal** (bool) - Use device-active signal. Default: '0' ``` -------------------------------- ### Module Initialization and Exit Functions Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/c/readme_EN.txt Functions for managing GPIO states and power consumption for the e-paper module. ```c void DEV_Module_Init(void); void DEV_Module_Exit(void); ``` -------------------------------- ### HAL System Initialization Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2in13_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Core system functions for initializing the HAL library and system tick. ```APIDOC ## HAL_Init ### Description Initializes the Flash interface, the NVIC, and the Systick. ## HAL_InitTick ### Description Initializes the system tick timer to generate a periodic interrupt. ``` -------------------------------- ### CPU Configuration Parameters Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/3in97_e-Paper_G/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM33_DSP_FP_config.txt Parameters for configuring the CPU0 instance, including security extensions, memory protection units, and trace support. ```APIDOC ## CPU0 Configuration ### Description Configures the processor core settings including FPU, DSP, MPU regions, and security extensions. ### Parameters - **cpu0.FPU** (bool) - init-time - Set whether the model has VFP support - **cpu0.DSP** (bool) - init-time - Set whether the model has the DSP extension - **cpu0.MPU_S** (int) - init-time - Number of regions in the Secure MPU [0x0..0x10] - **cpu0.MPU_NS** (int) - init-time - Number of regions in the Non-Secure MPU [0x0..0x10] - **cpu0.SECEXT** (bool) - init-time - Whether the ARMv8-M Security Extensions are included ``` -------------------------------- ### EPD_7IN5_V2 Initialization Functions Source: https://github.com/waveshareteam/e-paper/blob/master/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Provides different methods for initializing the EPD_7IN5_V2 display. ```APIDOC ## EPD_7IN5_V2 Initialization Functions ### Description These functions initialize the EPD_7IN5_V2 display using various methods. ### Methods - `EPD_7IN5_V2_Init_Part` - `EPD_7IN5_V2_Init_Fast` - `EPD_7IN5_V2_Init` ### Notes These functions are crucial for preparing the display before sending any data or commands. ``` -------------------------------- ### C GUI Paint Library - Drawing Primitives Source: https://context7.com/waveshareteam/e-paper/llms.txt Initializes the image buffer, sets drawing parameters like rotation and grayscale, and demonstrates drawing various graphics primitives including points, lines, rectangles, and circles. Also shows text and number rendering with different fonts, Chinese characters, time display, clearing specific regions, and setting mirroring and rotation. ```c #include "GUI_Paint.h" #include "fonts.h" // Initialize image buffer UBYTE *image_buffer; UWORD width = 250, height = 122; // Create new image with rotation Paint_NewImage(image_buffer, width, height, ROTATE_90, WHITE); Paint_SelectImage(image_buffer); Paint_Clear(WHITE); // Set grayscale mode (for displays that support it) Paint_SetScale(4); // 2 = B/W, 4 = 4-gray, 7 = 7-color // Drawing points with different sizes Paint_DrawPoint(10, 10, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT); Paint_DrawPoint(20, 10, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT); Paint_DrawPoint(30, 10, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT); Paint_DrawPoint(40, 10, BLACK, DOT_PIXEL_4X4, DOT_STYLE_DFT); // Drawing lines - solid and dotted Paint_DrawLine(10, 30, 100, 30, BLACK, DOT_PIXEL_1X1, LINE_STYLE_SOLID); Paint_DrawLine(10, 40, 100, 40, BLACK, DOT_PIXEL_1X1, LINE_STYLE_DOTTED); Paint_DrawLine(10, 50, 100, 80, BLACK, DOT_PIXEL_2X2, LINE_STYLE_SOLID); // Rectangles - empty and filled Paint_DrawRectangle(10, 90, 60, 140, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); Paint_DrawRectangle(70, 90, 120, 140, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); // Circles - empty and filled Paint_DrawCircle(45, 180, 30, BLACK, DOT_PIXEL_1X1, DRAW_FILL_EMPTY); Paint_DrawCircle(115, 180, 30, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); // Text rendering with different fonts Paint_DrawString_EN(150, 10, "Hello", &Font8, BLACK, WHITE); Paint_DrawString_EN(150, 25, "Hello", &Font12, BLACK, WHITE); Paint_DrawString_EN(150, 45, "Hello", &Font16, BLACK, WHITE); Paint_DrawString_EN(150, 70, "Hello", &Font20, BLACK, WHITE); Paint_DrawString_EN(150, 100, "Hello", &Font24, BLACK, WHITE); // Numbers Paint_DrawNum(150, 140, 123456, &Font16, BLACK, WHITE); Paint_DrawNumDecimals(150, 160, 3.14159, &Font16, 2, BLACK, WHITE); // Chinese text (GB1312 encoding) Paint_DrawString_CN(10, 220, "Chinese", &Font12CN, BLACK, WHITE); Paint_DrawString_CN(10, 240, "Chinese", &Font24CN, BLACK, WHITE); // Time display PAINT_TIME time = {2024, 1, 15, 14, 30, 45}; Paint_DrawTime(150, 190, &time, &Font20, BLACK, WHITE); // Clear specific window region Paint_ClearWindows(200, 10, 250, 50, WHITE); // Mirror and rotate options Paint_SetMirroring(MIRROR_HORIZONTAL); // MIRROR_NONE, MIRROR_VERTICAL, MIRROR_ORIGIN Paint_SetRotate(ROTATE_180); // ROTATE_0, ROTATE_90, ROTATE_180, ROTATE_270 ``` -------------------------------- ### Run the E-Paper Program Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/c/readme_EN.txt After successful compilation, an executable file named 'epd' is generated. Run the program using sudo. ```bash sudo ./epd ``` -------------------------------- ### HAL_Init Source: https://github.com/waveshareteam/e-paper/blob/master/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Initializes the Flash interface, the NVIC (Nested Vectored Interrupt Controller), and the Systick timer. ```APIDOC ## HAL_Init ### Description Initializes the HAL library, including the Flash interface, NVIC, and Systick timer. ### Method Function Call ### Parameters None ``` -------------------------------- ### Device Initialization and Exit Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/7in5_e-Paper_H/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Functions for initializing and exiting device modules. ```APIDOC ## DEV_SPI_Init ### Description Initializes the SPI peripheral. ### Method N/A (Function Call) ### Endpoint N/A ### Parameters None ### Request Example ```c DEV_SPI_Init(); ``` ### Response None ``` ```APIDOC ## DEV_Module_Init ### Description Initializes the device module. ### Method N/A (Function Call) ### Endpoint N/A ### Parameters None ### Request Example ```c DEV_Module_Init(); ``` ### Response None ``` ```APIDOC ## DEV_Module_Exit ### Description Exits the device module. ### Method N/A (Function Call) ### Endpoint N/A ### Parameters None ### Request Example ```c DEV_Module_Exit(); ``` ### Response None ``` -------------------------------- ### CPU0 Configuration Parameters Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/4in2_e-Paper_G/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM33_DSP_FP_config.txt Parameters for configuring the CPU0 instance, including FPU, DSP, MPU, and security extensions. ```APIDOC ## CPU0 Configuration ### Description Configures hardware features and security settings for the CPU0 instance. ### Parameters - **cpu0.FPU** (bool) - init-time - Set whether the model has VFP support - **cpu0.DSP** (bool) - init-time - Set whether the model has the DSP extension - **cpu0.semihosting-enable** (bool) - init-time - Enable semihosting SVC traps - **cpu0.MPU_S** (int) - init-time - Number of regions in the Secure MPU [0x0..0x10] - **cpu0.MPU_NS** (int) - init-time - Number of regions in the Non-Secure MPU [0x0..0x10] - **cpu0.ITM** (bool) - init-time - Level of instrumentation trace supported - **cpu0.IRQLVL** (int) - init-time - Number of bits of interrupt priority [0x3..0x8] - **cpu0.BIGENDINIT** (bool) - init-time - Initialize processor to big endian mode - **cpu0.INITSVTOR** (int) - init-time - Secure vector-table offset at reset [0x0..0xFFFFFF80] - **cpu0.INITNSVTOR** (int) - init-time - Non-Secure vector-table offset at reset [0x0..0xFFFFFF80] - **cpu0.SAU** (int) - init-time - Number of SAU regions [0x0..0x8] - **cpu0.SAU_CTRL.ENABLE** (bool) - init-time - Enable SAU at reset - **cpu0.SAU_CTRL.ALLNS** (bool) - init-time - At reset, the SAU treats entire memory space as NS when the SAU is disabled - **cpu0.NUM_IDAU_REGION** (int) - init-time - Number of IDAU regions - **cpu0.LOCK_SAU** (bool) - init-time - Lock down of SAU registers write - **cpu0.LOCK_S_MPU** (bool) - init-time - Lock down of Secure MPU registers write - **cpu0.LOCK_NS_MPU** (bool) - init-time - Lock down of Non-Secure MPU registers write - **cpu0.CPIF** (bool) - init-time - Specifies whether the external coprocessor interface is included - **cpu0.SECEXT** (bool) - init-time - Whether the ARMv8-M Security Extensions are included ``` -------------------------------- ### CPU Configuration Parameters Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/3in97_e-Paper/STM32-F103ZET6/Drivers/CMSIS/DSP/DSP_Lib_TestSuite/DspLibTest_FVP/ARMCM33_FP_config.txt Parameters for configuring the CPU0 core, including FPU, DSP, MPU, and security extension settings. ```APIDOC ## CPU0 Configuration ### Parameters - **cpu0.FPU** (bool) - init-time - Set whether the model has VFP support - **cpu0.DSP** (bool) - init-time - Set whether the model has the DSP extension - **cpu0.semihosting-enable** (bool) - init-time - Enable semihosting SVC traps - **cpu0.MPU_S** (int) - init-time - Number of regions in the Secure MPU [0x0..0x10] - **cpu0.MPU_NS** (int) - init-time - Number of regions in the Non-Secure MPU [0x0..0x10] - **cpu0.ITM** (bool) - init-time - Level of instrumentation trace supported - **cpu0.IRQLVL** (int) - init-time - Number of bits of interrupt priority [0x3..0x8] - **cpu0.BIGENDINIT** (bool) - init-time - Initialize processor to big endian mode - **cpu0.INITSVTOR** (int) - init-time - Secure vector-table offset at reset [0x0..0xFFFFFF80] - **cpu0.INITNSVTOR** (int) - init-time - Non-Secure vector-table offset at reset [0x0..0xFFFFFF80] - **cpu0.SAU** (int) - init-time - Number of SAU regions [0x0..0x8] - **cpu0.SAU_CTRL.ENABLE** (bool) - init-time - Enable SAU at reset - **cpu0.SAU_CTRL.ALLNS** (bool) - init-time - SAU treats entire memory space as NS when disabled - **cpu0.NUM_IDAU_REGION** (int) - init-time - Number of IDAU regions - **cpu0.LOCK_SAU** (bool) - init-time - Lock down of SAU registers write - **cpu0.LOCK_S_MPU** (bool) - init-time - Lock down of Secure MPU registers write - **cpu0.LOCK_NS_MPU** (bool) - init-time - Lock down of Non-Secure MPU registers write - **cpu0.CPIF** (bool) - init-time - Specifies whether the external coprocessor interface is included - **cpu0.SECEXT** (bool) - init-time - Whether the ARMv8-M Security Extensions are included ``` -------------------------------- ### SPI MSP and De-Initialization Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/2.9inch_e-Paper_G/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Details on HAL_SPI_MspInit and HAL_SPI_MspDeInit functions, including stack usage and dependencies. ```APIDOC ## SPI MSP and De-Initialization ### HAL_SPI_MspInit * **Details**: Thumb, 80 bytes, Stack size 24 bytes * **Source File**: spi.o(.text) * **Stack Usage**: Max Depth = 64 * **Call Chain**: HAL_SPI_MspInit ⇒ HAL_GPIO_Init * **Calls**: HAL_GPIO_Init * **Called By**: DEV_SPI_Init, HAL_SPI_Init ### HAL_SPI_MspDeInit * **Details**: Thumb, 28 bytes, Stack size 0 bytes * **Source File**: spi.o(.text), UNUSED * **Calls**: HAL_GPIO_DeInit * **Called By**: HAL_SPI_DeInit, DEV_GPIO_Init ``` -------------------------------- ### System Initialization Functions Source: https://github.com/waveshareteam/e-paper/blob/master/E-paper_Separate_Program/5inch_e-Paper/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm Functions related to system initialization and clock updates. ```APIDOC ## SystemInit ### Description Initializes the system clock and peripherals. ### Method N/A (Function Call) ### Endpoint N/A ### Parameters None explicitly defined in the provided text. ### Request Example N/A ### Response N/A ## SystemCoreClockUpdate ### Description Updates the system core clock frequency. ### Method N/A (Function Call) ### Endpoint N/A ### Parameters None explicitly defined in the provided text. ### Request Example N/A ### Response N/A ```