mirror of
https://github.com/IcedRooibos/py32f0-template.git
synced 2025-10-29 08:52:04 -07:00
refactor: st7567 demo, change pins to port a
This commit is contained in:
parent
4c651bfc34
commit
504c1dde99
@ -2,28 +2,30 @@
|
|||||||
* Demo: ST7567 LCD
|
* Demo: ST7567 LCD
|
||||||
*
|
*
|
||||||
* PY32 ST7567
|
* PY32 ST7567
|
||||||
* PB2 ------> CS
|
* PA0 ------> Reset
|
||||||
* PB3 ------> CLK/SCK
|
* PA1 ------> CLK/SCK
|
||||||
* PB5 ------> DIN/MOSI
|
* PA4 ------> Backlight
|
||||||
* PA8 ------> Reset
|
* PA5 ------> DC/AO
|
||||||
* PA9 ------> DC/A0
|
* PA6 ------> CSN/CE
|
||||||
* PA10 ------> Back Light
|
* PA7 ------> MOSI
|
||||||
|
*
|
||||||
|
* PA2 ------> UART TX
|
||||||
*/
|
*/
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "py32f0xx_bsp_clock.h"
|
||||||
#include "py32f0xx_bsp_printf.h"
|
#include "py32f0xx_bsp_printf.h"
|
||||||
#include "st7567.h"
|
#include "st7567.h"
|
||||||
|
|
||||||
|
|
||||||
static void APP_SPIConfig(void);
|
static void APP_SPIConfig(void);
|
||||||
static void APP_SystemClockConfig(void);
|
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
int y1, y2;
|
int y1, y2;
|
||||||
uint8_t d1, d2;
|
uint8_t d1, d2;
|
||||||
|
|
||||||
APP_SystemClockConfig();
|
BSP_RCC_HSI_24MConfig();
|
||||||
|
|
||||||
BSP_USART_Config(115200);
|
BSP_USART_Config(115200);
|
||||||
printf("SPI Demo: ST7567 LCD\r\nClock: %ld\r\n", SystemCoreClock);
|
printf("SPI Demo: ST7567 LCD\r\nClock: %ld\r\n", SystemCoreClock);
|
||||||
@ -227,29 +229,28 @@ static void APP_SPIConfig(void)
|
|||||||
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_SPI1);
|
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_SPI1);
|
||||||
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA | LL_IOP_GRP1_PERIPH_GPIOB);
|
LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA | LL_IOP_GRP1_PERIPH_GPIOB);
|
||||||
|
|
||||||
// PB2 CS
|
// PA6 CS
|
||||||
LL_GPIO_SetPinMode(GPIOB, LL_GPIO_PIN_2, LL_GPIO_MODE_OUTPUT);
|
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_6, LL_GPIO_MODE_OUTPUT);
|
||||||
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_8, LL_GPIO_MODE_OUTPUT);
|
// PA5 DC/AO
|
||||||
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_9, LL_GPIO_MODE_OUTPUT);
|
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_5, LL_GPIO_MODE_OUTPUT);
|
||||||
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_10, LL_GPIO_MODE_OUTPUT);
|
// PA0 RESET
|
||||||
// PB3 SCK
|
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_0, LL_GPIO_MODE_OUTPUT);
|
||||||
GPIO_InitStruct.Pin = LL_GPIO_PIN_3;
|
// PA4 ------> Backlight
|
||||||
|
LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_4, LL_GPIO_MODE_OUTPUT);
|
||||||
|
|
||||||
|
// PA1 SCK
|
||||||
|
GPIO_InitStruct.Pin = LL_GPIO_PIN_1;
|
||||||
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
|
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
|
||||||
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
|
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
|
||||||
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
|
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
|
||||||
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
|
GPIO_InitStruct.Pull = LL_GPIO_PULL_UP;
|
||||||
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
||||||
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
// PB4 MISO (not connected)
|
// PA7 MOSI
|
||||||
GPIO_InitStruct.Pin = LL_GPIO_PIN_4;
|
GPIO_InitStruct.Pin = LL_GPIO_PIN_7;
|
||||||
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
||||||
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
||||||
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
// PB5 MOSI
|
|
||||||
GPIO_InitStruct.Pin = LL_GPIO_PIN_5;
|
|
||||||
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
|
|
||||||
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
|
|
||||||
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX;
|
SPI_InitStruct.TransferDirection = LL_SPI_FULL_DUPLEX;
|
||||||
SPI_InitStruct.Mode = LL_SPI_MODE_MASTER;
|
SPI_InitStruct.Mode = LL_SPI_MODE_MASTER;
|
||||||
@ -263,23 +264,6 @@ static void APP_SPIConfig(void)
|
|||||||
LL_SPI_Enable(SPI1);
|
LL_SPI_Enable(SPI1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void APP_SystemClockConfig(void)
|
|
||||||
{
|
|
||||||
LL_UTILS_ClkInitTypeDef UTILS_ClkInitStruct;
|
|
||||||
|
|
||||||
LL_RCC_HSI_Enable();
|
|
||||||
/* Change this value to adjust clock frequency, larger is faster */
|
|
||||||
LL_RCC_HSI_SetCalibFreq(LL_RCC_HSICALIBRATION_24MHz + 15);
|
|
||||||
while (LL_RCC_HSI_IsReady() != 1);
|
|
||||||
|
|
||||||
UTILS_ClkInitStruct.AHBCLKDivider = LL_RCC_SYSCLK_DIV_1;
|
|
||||||
UTILS_ClkInitStruct.APB1CLKDivider = LL_RCC_APB1_DIV_1;
|
|
||||||
LL_PLL_ConfigSystemClock_HSI(&UTILS_ClkInitStruct);
|
|
||||||
|
|
||||||
/* Re-init frequency of SysTick source, reload = freq/ticks = 48000000/1000 = 48000 */
|
|
||||||
LL_InitTick(48000000, 1000U);
|
|
||||||
}
|
|
||||||
|
|
||||||
void APP_ErrorHandler(void)
|
void APP_ErrorHandler(void)
|
||||||
{
|
{
|
||||||
while (1);
|
while (1);
|
||||||
|
|||||||
@ -19,24 +19,24 @@
|
|||||||
#define ST7567_BUF_SIZE 1024
|
#define ST7567_BUF_SIZE 1024
|
||||||
#define ST7567_HARDWARE_SPI 1
|
#define ST7567_HARDWARE_SPI 1
|
||||||
|
|
||||||
// CS: PB2
|
// CS: PA6
|
||||||
#define ST7567_CS_LOW LL_GPIO_ResetOutputPin(GPIOB, LL_GPIO_PIN_2)
|
#define ST7567_CS_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_6)
|
||||||
#define ST7567_CS_HIGH LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_2)
|
#define ST7567_CS_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_6)
|
||||||
// SCK: PB3
|
// SCK: PA1
|
||||||
#define ST7567_SCK_PORT GPIOB
|
#define ST7567_SCK_PORT GPIOA
|
||||||
#define ST7567_SCK_PIN LL_GPIO_PIN_3
|
#define ST7567_SCK_PIN LL_GPIO_PIN_1
|
||||||
// MOSI: PB5
|
// MOSI: PA7
|
||||||
#define ST7567_MOSI_PORT GPIOB
|
#define ST7567_MOSI_PORT GPIOA
|
||||||
#define ST7567_MOSI_PIN LL_GPIO_PIN_5
|
#define ST7567_MOSI_PIN LL_GPIO_PIN_7
|
||||||
// Reset: PA8
|
// Reset: PA0
|
||||||
#define ST7567_RESET_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_8)
|
#define ST7567_RESET_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_0)
|
||||||
#define ST7567_RESET_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_8)
|
#define ST7567_RESET_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_0)
|
||||||
// DC: PA9
|
// DC: PA5
|
||||||
#define ST7567_DC_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_9)
|
#define ST7567_DC_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_5)
|
||||||
#define ST7567_DC_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_9)
|
#define ST7567_DC_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_5)
|
||||||
// Black Light: PA10
|
// Black Light: PA4
|
||||||
#define ST7567_BL_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_10)
|
#define ST7567_BL_LOW LL_GPIO_ResetOutputPin(GPIOA, LL_GPIO_PIN_4)
|
||||||
#define ST7567_BL_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_10)
|
#define ST7567_BL_HIGH LL_GPIO_SetOutputPin(GPIOA, LL_GPIO_PIN_4)
|
||||||
|
|
||||||
// X width
|
// X width
|
||||||
#define ST7567_WIDTH 128
|
#define ST7567_WIDTH 128
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user