add eeprom stuff
This commit is contained in:
parent
4739491654
commit
6a7b54dcc1
@ -51,6 +51,8 @@
|
||||
#define ROTARY_A_GPIO_Port GPIOB
|
||||
#define SWITCH_Pin GPIO_PIN_5
|
||||
#define SWITCH_GPIO_Port GPIOB
|
||||
#define EEPROM_CS_Pin GPIO_PIN_6
|
||||
#define EEPROM_CS_GPIO_Port GPIOB
|
||||
#define OLED_CS_Pin GPIO_PIN_7
|
||||
#define OLED_CS_GPIO_Port GPIOB
|
||||
#define OLED_DC_Pin GPIO_PIN_8
|
||||
|
@ -223,7 +223,7 @@ static void MX_GPIO_Init(void)
|
||||
HAL_GPIO_WritePin(GPIOC, LED_Pin|ERROR_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOB, OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOB, EEPROM_CS_Pin|OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pins : LED_Pin ERROR_Pin */
|
||||
GPIO_InitStruct.Pin = LED_Pin|ERROR_Pin;
|
||||
@ -237,8 +237,8 @@ static void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : OLED_CS_Pin OLED_DC_Pin OLED_RST_Pin */
|
||||
GPIO_InitStruct.Pin = OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin;
|
||||
/*Configure GPIO pins : EEPROM_CS_Pin OLED_CS_Pin OLED_DC_Pin OLED_RST_Pin */
|
||||
GPIO_InitStruct.Pin = EEPROM_CS_Pin|OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
@ -140,6 +140,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
/**SPI1 GPIO Configuration
|
||||
PA5 ------> SPI1_SCK
|
||||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
|
||||
@ -147,6 +148,11 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||
|
||||
/* USER CODE END SPI1_MspInit 1 */
|
||||
@ -167,9 +173,10 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
/**SPI1 GPIO Configuration
|
||||
PA5 ------> SPI1_SCK
|
||||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_7);
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
|
||||
|
||||
}
|
||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||
|
@ -27,21 +27,23 @@ Mcu.Name=STM32F103C(8-B)Tx
|
||||
Mcu.Package=LQFP48
|
||||
Mcu.Pin0=PC13-TAMPER-RTC
|
||||
Mcu.Pin1=PC14-OSC32_IN
|
||||
Mcu.Pin10=PB4
|
||||
Mcu.Pin11=PB5
|
||||
Mcu.Pin12=PB7
|
||||
Mcu.Pin13=PB8
|
||||
Mcu.Pin14=PB9
|
||||
Mcu.Pin15=VP_SYS_VS_Systick
|
||||
Mcu.Pin10=PB3
|
||||
Mcu.Pin11=PB4
|
||||
Mcu.Pin12=PB5
|
||||
Mcu.Pin13=PB6
|
||||
Mcu.Pin14=PB7
|
||||
Mcu.Pin15=PB8
|
||||
Mcu.Pin16=PB9
|
||||
Mcu.Pin17=VP_SYS_VS_Systick
|
||||
Mcu.Pin2=PD0-OSC_IN
|
||||
Mcu.Pin3=PD1-OSC_OUT
|
||||
Mcu.Pin4=PA0-WKUP
|
||||
Mcu.Pin5=PA5
|
||||
Mcu.Pin6=PA7
|
||||
Mcu.Pin7=PA13
|
||||
Mcu.Pin8=PA14
|
||||
Mcu.Pin9=PB3
|
||||
Mcu.PinsNb=16
|
||||
Mcu.Pin6=PA6
|
||||
Mcu.Pin7=PA7
|
||||
Mcu.Pin8=PA13
|
||||
Mcu.Pin9=PA14
|
||||
Mcu.PinsNb=18
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32F103C8Tx
|
||||
MxCube.Version=4.16.1
|
||||
@ -64,9 +66,11 @@ PA13.Mode=Serial_Wire
|
||||
PA13.Signal=SYS_JTMS-SWDIO
|
||||
PA14.Mode=Serial_Wire
|
||||
PA14.Signal=SYS_JTCK-SWCLK
|
||||
PA5.Mode=TX_Only_Simplex_Unidirect_Master
|
||||
PA5.Mode=Full_Duplex_Master
|
||||
PA5.Signal=SPI1_SCK
|
||||
PA7.Mode=TX_Only_Simplex_Unidirect_Master
|
||||
PA6.Mode=Full_Duplex_Master
|
||||
PA6.Signal=SPI1_MISO
|
||||
PA7.Mode=Full_Duplex_Master
|
||||
PA7.Signal=SPI1_MOSI
|
||||
PB3.GPIOParameters=GPIO_PuPd,GPIO_Label,GPIO_ModeDefaultEXTI
|
||||
PB3.GPIO_Label=ROTARY_B
|
||||
@ -86,6 +90,10 @@ PB5.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING_FALLING
|
||||
PB5.GPIO_PuPd=GPIO_PULLUP
|
||||
PB5.Locked=true
|
||||
PB5.Signal=GPXTI5
|
||||
PB6.GPIOParameters=GPIO_Label
|
||||
PB6.GPIO_Label=EEPROM_CS
|
||||
PB6.Locked=true
|
||||
PB6.Signal=GPIO_Output
|
||||
PB7.GPIOParameters=GPIO_Label
|
||||
PB7.GPIO_Label=OLED_CS
|
||||
PB7.Locked=true
|
||||
|
@ -51,6 +51,8 @@
|
||||
#define ROTARY_A_GPIO_Port GPIOB
|
||||
#define SWITCH_Pin GPIO_PIN_5
|
||||
#define SWITCH_GPIO_Port GPIOB
|
||||
#define EEPROM_CS_Pin GPIO_PIN_6
|
||||
#define EEPROM_CS_GPIO_Port GPIOB
|
||||
#define OLED_CS_Pin GPIO_PIN_7
|
||||
#define OLED_CS_GPIO_Port GPIOB
|
||||
#define OLED_DC_Pin GPIO_PIN_8
|
||||
|
55
my_src/eeprom.c
Normal file
55
my_src/eeprom.c
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* eeprom.c
|
||||
*
|
||||
* Created on: Jun 7, 2017
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
#include "eeprom.h"
|
||||
#include "stm32f1xx_hal.h"
|
||||
|
||||
|
||||
#define HIGH GPIO_PIN_SET
|
||||
#define LOW GPIO_PIN_RESET
|
||||
|
||||
extern SPI_HandleTypeDef hspi1;
|
||||
|
||||
|
||||
const uint8_t EEPROM_READ = 0x03;
|
||||
const uint8_t EEPROM_WRITE = 0x02;
|
||||
const uint8_t EEPROM_WRDI = 0x04;
|
||||
const uint8_t EEPROM_WREN = 0x06;
|
||||
const uint8_t EEPROM_RDSR = 0x05;
|
||||
const uint8_t EEPROM_WRSR = 0x01;
|
||||
|
||||
|
||||
static void __EEPROM_CS(GPIO_PinState v) {
|
||||
HAL_GPIO_WritePin(EEPROM_CS_GPIO_Port, EEPROM_CS_Pin, v);
|
||||
}
|
||||
|
||||
static void __HAL_SPI_Transmit_One_ByValue(SPI_HandleTypeDef *hspi, uint8_t c) {
|
||||
HAL_SPI_Transmit(hspi, &c, 1, 0);
|
||||
}
|
||||
|
||||
|
||||
void eepromWrite(uint16_t addr, uint8_t *buf, uint8_t len) {
|
||||
__EEPROM_CS(LOW);
|
||||
|
||||
__HAL_SPI_Transmit_One_ByValue(&hspi1, EEPROM_WREN);
|
||||
__HAL_SPI_Transmit_One_ByValue(&hspi1, EEPROM_WRITE);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)&addr, 2, 0);
|
||||
HAL_SPI_Transmit(&hspi1, buf, len, 0);
|
||||
|
||||
__EEPROM_CS(HIGH);
|
||||
}
|
||||
|
||||
void eepromRead(uint16_t addr, uint8_t *buf, uint8_t len) {
|
||||
__EEPROM_CS(LOW);
|
||||
|
||||
__HAL_SPI_Transmit_One_ByValue(&hspi1, EEPROM_READ);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)&addr, 2, 0);
|
||||
HAL_SPI_Receive(&hspi1, buf, len, 0);
|
||||
|
||||
__EEPROM_CS(HIGH);
|
||||
|
||||
}
|
18
my_src/eeprom.h
Normal file
18
my_src/eeprom.h
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
* eeprom.h
|
||||
*
|
||||
* Created on: Jun 7, 2017
|
||||
* Author: wn
|
||||
*/
|
||||
|
||||
#ifndef EEPROM_H_
|
||||
#define EEPROM_H_
|
||||
|
||||
#include "stm32f1xx_hal.h"
|
||||
|
||||
|
||||
void eepromWrite(uint16_t addr, uint8_t *buf, uint8_t len);
|
||||
void eepromRead(uint16_t addr, uint8_t *buf, uint8_t len);
|
||||
|
||||
|
||||
#endif /* EEPROM_H_ */
|
@ -227,7 +227,7 @@ static void MX_GPIO_Init(void)
|
||||
HAL_GPIO_WritePin(GPIOC, LED_Pin|ERROR_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOB, OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOB, EEPROM_CS_Pin|OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pins : LED_Pin ERROR_Pin */
|
||||
GPIO_InitStruct.Pin = LED_Pin|ERROR_Pin;
|
||||
@ -241,8 +241,8 @@ static void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : OLED_CS_Pin OLED_DC_Pin OLED_RST_Pin */
|
||||
GPIO_InitStruct.Pin = OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin;
|
||||
/*Configure GPIO pins : EEPROM_CS_Pin OLED_CS_Pin OLED_DC_Pin OLED_RST_Pin */
|
||||
GPIO_InitStruct.Pin = EEPROM_CS_Pin|OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
@ -223,7 +223,7 @@ static void MX_GPIO_Init(void)
|
||||
HAL_GPIO_WritePin(GPIOC, LED_Pin|ERROR_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pin Output Level */
|
||||
HAL_GPIO_WritePin(GPIOB, OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(GPIOB, EEPROM_CS_Pin|OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin, GPIO_PIN_RESET);
|
||||
|
||||
/*Configure GPIO pins : LED_Pin ERROR_Pin */
|
||||
GPIO_InitStruct.Pin = LED_Pin|ERROR_Pin;
|
||||
@ -237,8 +237,8 @@ static void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : OLED_CS_Pin OLED_DC_Pin OLED_RST_Pin */
|
||||
GPIO_InitStruct.Pin = OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin;
|
||||
/*Configure GPIO pins : EEPROM_CS_Pin OLED_CS_Pin OLED_DC_Pin OLED_RST_Pin */
|
||||
GPIO_InitStruct.Pin = EEPROM_CS_Pin|OLED_CS_Pin|OLED_DC_Pin|OLED_RST_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
@ -140,6 +140,7 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
/**SPI1 GPIO Configuration
|
||||
PA5 ------> SPI1_SCK
|
||||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_7;
|
||||
@ -147,6 +148,11 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN SPI1_MspInit 1 */
|
||||
|
||||
/* USER CODE END SPI1_MspInit 1 */
|
||||
@ -167,9 +173,10 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
/**SPI1 GPIO Configuration
|
||||
PA5 ------> SPI1_SCK
|
||||
PA6 ------> SPI1_MISO
|
||||
PA7 ------> SPI1_MOSI
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_7);
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
|
||||
|
||||
}
|
||||
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user