Отключение нагрева, во время передачи файлов
Драйвер для работы с I2C EEPROM
This commit is contained in:
@@ -1458,13 +1458,17 @@
|
||||
#define EEPROM_SETTINGS // Persistent storage with M500 and M501
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
|
||||
//#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
#define SDCARD_EEPROM_EMULATION
|
||||
#undef USE_REAL_EEPROM
|
||||
#undef FLASH_EEPROM_EMULATION
|
||||
#undef SRAM_EEPROM_EMULATION
|
||||
#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
|
||||
#define SDCARD_EEPROM_EMULATION
|
||||
#undef USE_REAL_EEPROM
|
||||
#undef FLASH_EEPROM_EMULATION
|
||||
#undef SRAM_EEPROM_EMULATION
|
||||
//#define EEPROM_AT24C16
|
||||
//#define USE_WIRED_EEPROM 1
|
||||
//#define I2C_EEPROM_AT24C16
|
||||
//#define E2END (2*1024 - 1)
|
||||
#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
|
||||
#endif
|
||||
|
||||
//
|
||||
|
||||
@@ -256,10 +256,18 @@ static int freeMemory() {
|
||||
* TODO: Write all this EEPROM stuff. Can emulate EEPROM in flash as last resort.
|
||||
* Wire library should work for i2c EEPROMs.
|
||||
*/
|
||||
void eeprom_write_byte(uint8_t *pos, unsigned char value);
|
||||
|
||||
#if ENABLED(I2C_EEPROM_AT24C16)
|
||||
uint8_t eeprom_read_byte(uint16_t *pos);
|
||||
void eeprom_write_byte(uint16_t *pos, unsigned char value);
|
||||
void eeprom_hw_init(void);
|
||||
#else
|
||||
uint8_t eeprom_read_byte(uint8_t *pos);
|
||||
void eeprom_write_byte(uint8_t *pos, unsigned char value);
|
||||
void eeprom_read_block(void *__dst, const void *__src, size_t __n);
|
||||
void eeprom_update_block(const void *__src, void *__dst, size_t __n);
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// ADC
|
||||
|
||||
@@ -36,6 +36,10 @@ bool PersistentStore::access_start() {
|
||||
#endif
|
||||
spiInit(0);
|
||||
#endif
|
||||
#if ENABLED(I2C_EEPROM_AT24C16)
|
||||
eeprom_hw_init();
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
bool PersistentStore::access_finish() { return true; }
|
||||
@@ -44,11 +48,18 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
while (size--) {
|
||||
uint8_t * const p = (uint8_t * const)pos;
|
||||
uint8_t v = *value;
|
||||
// EEPROM has only ~100,000 write cycles,
|
||||
// so only write bytes that have changed!
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
uint8_t r_val;
|
||||
|
||||
DEBUG("Write to : %d val: %0X",pos,v);
|
||||
r_val=eeprom_read_byte((uint16_t *)p);
|
||||
|
||||
if (v != r_val) {
|
||||
DEBUG("Read val: %0X To write val: %0X",r_val,v);
|
||||
eeprom_write_byte((uint16_t *)p, v);
|
||||
r_val=eeprom_read_byte((uint16_t *)p);
|
||||
DEBUG("Read back val: %0X",r_val);
|
||||
if (r_val != v) {
|
||||
ERROR("Write error");
|
||||
SERIAL_ECHO_MSG(STR_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
@@ -62,7 +73,8 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
|
||||
bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t *crc, const bool writing/*=true*/) {
|
||||
do {
|
||||
uint8_t c = eeprom_read_byte((uint8_t*)pos);
|
||||
DEBUG("Read form: %d",pos);
|
||||
uint8_t c = eeprom_read_byte((uint16_t*)pos);
|
||||
if (writing && value) *value = c;
|
||||
crc16(crc, &c, 1);
|
||||
pos++;
|
||||
|
||||
180
Marlin/src/HAL/shared/eeprom_i2c_at24.cpp
Normal file
180
Marlin/src/HAL/shared/eeprom_i2c_at24.cpp
Normal file
@@ -0,0 +1,180 @@
|
||||
/**
|
||||
|
||||
AT24C16, 16K SERIAL EEPROM:
|
||||
Internally organized with 128 pages of 16 bytes each (2048 bytes)
|
||||
|
||||
16K requires an 11-bit data word address for random word addressing.
|
||||
|
||||
The 16K does not use any device address bits but instead the 3 bits are used for mem-
|
||||
ory page addressing. These page addressing bits on the 4K, 8K and 16K devices
|
||||
should be considered the most significant bits of the data word address which follows.
|
||||
The A0, A1 and A2 pins are no connect.
|
||||
|
||||
*/
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
#if ENABLED(I2C_EEPROM_AT24C16)
|
||||
|
||||
#include "../HAL.h"
|
||||
#include "../../module/mks_wifi/small_cmsis.h"
|
||||
#include "../../module/mks_wifi/dwt.h"
|
||||
|
||||
#define DEV_ADDR 0xA0
|
||||
#define FSMC_DISABLE RCC->AHBENR &= ~RCC_AHBENR_FSMCEN //Конфликт на ноге FSMC_NADV с I2C. На время передачи приходится отключать FSMC
|
||||
#define FSMC_RESTORE RCC->AHBENR |= RCC_AHBENR_FSMCEN;
|
||||
|
||||
#define I2C_TIMEOUT 2000 //таймаут на ожидание опереций I2C.
|
||||
|
||||
#define CHECK_TIMEOUT do{if(dwt_get_timeout() == 0){ERROR("Timeout");return 0;}}while(0)
|
||||
|
||||
static bool waitSRBitSet(uint32_t Bit);
|
||||
static uint8_t i2c_write(const uint8_t hw_adr, uint8_t *data, uint32_t len);
|
||||
static uint8_t i2c_read(const uint8_t hw_adr, uint16_t addr, uint8_t *data, uint32_t len);
|
||||
|
||||
|
||||
void eeprom_hw_init(void){
|
||||
/*
|
||||
PB6 SCL Alternate function open drain
|
||||
PB7 SDA Alternate function open drain
|
||||
*/
|
||||
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN|RCC_APB2ENR_AFIOEN;
|
||||
PORTB->CRL |= (GPIO_CRL_MODE6|GPIO_CRL_MODE7|GPIO_CRL_CNF6|GPIO_CRL_CNF7);
|
||||
|
||||
AFIO->MAPR2 |= AFIO_MAPR2_FSMC_NADV_REMAP; //Remap по факту не работает, бит не устанавливается.
|
||||
RCC->APB1ENR|= RCC_APB1ENR_I2C1EN;
|
||||
|
||||
I2C1->CR1 = I2C_CR1_SWRST;
|
||||
I2C1->CR1 = 0;
|
||||
|
||||
//Тактовая 72Mhz, PCLK 36Mhz
|
||||
I2C1->CCR = (180 << I2C_CCR_CCR_Pos);
|
||||
I2C1->CR2 = (36 << I2C_CR2_FREQ_Pos);
|
||||
I2C1->TRISE = 37;
|
||||
I2C1->CR1 = I2C_CR1_PE;
|
||||
}
|
||||
|
||||
void eeprom_write_byte(uint16_t *pos, unsigned char value) {
|
||||
uint8_t data[2];
|
||||
|
||||
//DEBUG("EEPROM write to pos: %d val %0X",pos,value);
|
||||
FSMC_DISABLE;
|
||||
|
||||
data[0]=(uint8_t)((unsigned)pos % 256);
|
||||
data[1]=(uint8_t)(value);
|
||||
|
||||
if(!i2c_write((DEV_ADDR+(uint8_t)(((unsigned)pos/256)<<1)),data,2)){
|
||||
ERROR("write failed");
|
||||
}
|
||||
safe_delay(20); //Задержка на время пока eeprom пишет.
|
||||
FSMC_RESTORE;
|
||||
}
|
||||
|
||||
uint8_t eeprom_read_byte(uint16_t *pos) {
|
||||
uint8_t data;
|
||||
|
||||
//DEBUG("EEPROM read from pos: %d",pos);
|
||||
FSMC_DISABLE;
|
||||
|
||||
if(!i2c_read(DEV_ADDR, (uint16_t)((unsigned)pos), &data, 1)){
|
||||
ERROR("read failed");
|
||||
data=0;
|
||||
}
|
||||
|
||||
safe_delay(1); //небольшая пауза перед включением FSMC, чтобы состояние STOP успело выставиться на линии.
|
||||
FSMC_RESTORE;
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
static uint8_t i2c_write(const uint8_t hw_adr, uint8_t *data, uint32_t len){
|
||||
|
||||
DEBUG("i2c write at %d val %0X",data[0],data[1]);
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(I2C1->SR2 & I2C_SR2_BUSY) {CHECK_TIMEOUT;};
|
||||
|
||||
|
||||
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_START;
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(!(I2C1->SR1 & I2C_SR1_SB)) {CHECK_TIMEOUT;};
|
||||
I2C1->DR = (hw_adr & 0xFE);
|
||||
|
||||
if(!waitSRBitSet(I2C_SR1_ADDR)) return false;
|
||||
(void)I2C1->SR2;
|
||||
|
||||
while(len--){
|
||||
if(!waitSRBitSet(I2C_SR1_TXE)) return false;
|
||||
I2C1->DR = *data++;
|
||||
}
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(!((I2C1->SR1 & I2C_SR1_TXE) && (I2C1->SR1 & I2C_SR1_BTF))) {CHECK_TIMEOUT;};
|
||||
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_STOP;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static uint8_t i2c_read(const uint8_t hw_adr, uint16_t addr, uint8_t *data, uint32_t len){
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(I2C1->SR2 & I2C_SR2_BUSY) {CHECK_TIMEOUT;};
|
||||
|
||||
//Запись адреса
|
||||
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_START;
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(!(I2C1->SR1 & I2C_SR1_SB)) {CHECK_TIMEOUT;}; //Условие старт
|
||||
|
||||
|
||||
I2C1->DR = ((hw_adr & 0xFE) + ((addr/256) << 1));
|
||||
if(!waitSRBitSet(I2C_SR1_ADDR)) return false; //i2c адрес отправлен
|
||||
I2C1->SR2;
|
||||
|
||||
if(!waitSRBitSet(I2C_SR1_TXE)) return false;
|
||||
I2C1->DR = addr%256; //адрес в памяти отправлен
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(!((I2C1->SR1 & I2C_SR1_TXE) && (I2C1->SR1 & I2C_SR1_BTF))) {CHECK_TIMEOUT;};
|
||||
|
||||
//Чтение
|
||||
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_START | I2C_CR1_ACK;
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
while(!(I2C1->SR1 & I2C_SR1_SB)) {CHECK_TIMEOUT;};
|
||||
I2C1->DR = hw_adr|1;
|
||||
|
||||
if(!waitSRBitSet(I2C_SR1_ADDR)) return false;
|
||||
I2C1->SR2;
|
||||
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_STOP;
|
||||
|
||||
if(!waitSRBitSet(I2C_SR1_RXNE)) return false;
|
||||
*data = I2C1->DR;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
static bool waitSRBitSet(uint32_t Bit){
|
||||
uint32_t sr;
|
||||
|
||||
dwt_settimeout(I2C_TIMEOUT);
|
||||
do{
|
||||
sr = I2C1->SR1;
|
||||
if(sr & ( I2C_SR1_AF | I2C_SR1_ARLO | I2C_SR1_BERR)){
|
||||
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_STOP;
|
||||
I2C1->SR1 = 0;
|
||||
ERROR("I2C Error flag %0X",sr);
|
||||
return false;
|
||||
}
|
||||
if(dwt_get_timeout() == 0){
|
||||
ERROR("Timeout");
|
||||
return false;
|
||||
}
|
||||
|
||||
}while(!(sr & Bit));
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
#endif // I2C_EEPROM
|
||||
@@ -10,7 +10,6 @@
|
||||
// #endif
|
||||
|
||||
#include "integer.h"
|
||||
#include "../../module/mks_wifi/mks_wifi_sd_low_lev.h"
|
||||
#include "sdio_driver.h"
|
||||
#include "../../MarlinCore.h"
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#define SDIO_DRIVER_H
|
||||
|
||||
#include "../../module/mks_wifi/small_cmsis.h"
|
||||
#include "../../module/mks_wifi/mks_wifi_sd_low_lev.h"
|
||||
|
||||
// SD card description
|
||||
typedef struct {
|
||||
|
||||
68
Marlin/src/module/mks_wifi/dwt.cpp
Normal file
68
Marlin/src/module/mks_wifi/dwt.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
#include "dwt.h"
|
||||
|
||||
volatile uint32_t timeout;
|
||||
|
||||
/*
|
||||
Счетчик за секунду "щелкает" SYS_CLK (72 000 000) раз.
|
||||
DWT->CYCCNT 32-bit, 4294967295 / 72000000 = 59,6 секунд до переполнения
|
||||
*/
|
||||
|
||||
|
||||
void dwt_settimeout(uint32_t time){
|
||||
|
||||
if(time > (MAX_TIMEOUT-1)){
|
||||
DEBUG("Timeout too much, reset to %d",MAX_TIMEOUT);
|
||||
time = MAX_TIMEOUT;
|
||||
}
|
||||
|
||||
timeout = time * (SYS_CLK / 1000);
|
||||
DWT->CYCCNT = 0;
|
||||
}
|
||||
|
||||
uint32_t dwt_get_timeout(void){
|
||||
uint32_t current_timer = DWT->CYCCNT;
|
||||
|
||||
if(current_timer >= timeout) {
|
||||
timeout = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return current_timer;
|
||||
}
|
||||
|
||||
|
||||
void dwt_init(void){
|
||||
|
||||
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
|
||||
DWT->CYCCNT = 0;
|
||||
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
|
||||
|
||||
}
|
||||
|
||||
|
||||
uint32_t dwt_get_tick(void){
|
||||
return DWT->CYCCNT;
|
||||
}
|
||||
|
||||
uint32_t dwt_get_tick_in_sec(void){
|
||||
return DWT->CYCCNT/(SYS_CLK/1000);
|
||||
}
|
||||
|
||||
uint32_t dwt_get_diff_tick(uint32_t tick){
|
||||
uint32_t result=0;
|
||||
|
||||
if(DWT->CYCCNT > tick){
|
||||
result=DWT->CYCCNT-tick;
|
||||
}else{
|
||||
result=(uint32_t)(0xFFFFFFFF-tick)+DWT->CYCCNT;
|
||||
};
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
uint32_t dwt_get_diff_sec(uint32_t tick){
|
||||
|
||||
return dwt_get_diff_tick(tick)/(SYS_CLK/1000);
|
||||
}
|
||||
|
||||
|
||||
19
Marlin/src/module/mks_wifi/dwt.h
Normal file
19
Marlin/src/module/mks_wifi/dwt.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#ifndef DWT_H
|
||||
#define DWT_H
|
||||
|
||||
#include "small_cmsis.h"
|
||||
|
||||
#define SYS_CLK (uint32_t)72000000UL
|
||||
#define MAX_TIMEOUT (uint32_t)((0xFFFFFFFF/SYS_CLK)*1000)
|
||||
|
||||
|
||||
void dwt_init(void);
|
||||
uint32_t dwt_get_tick(void);
|
||||
uint32_t dwt_get_diff_tick(uint32_t tick);
|
||||
uint32_t dwt_get_diff_sec(uint32_t tick);
|
||||
uint32_t dwt_get_tick_in_sec(void);
|
||||
|
||||
void dwt_settimeout(uint32_t timeout);
|
||||
uint32_t dwt_get_timeout(void);
|
||||
|
||||
#endif
|
||||
@@ -114,7 +114,7 @@ void mks_m23(char *filename){
|
||||
DEBUG("DOS file name: %s",dosfilename);
|
||||
card.openFileRead(dosfilename);
|
||||
}else{
|
||||
DEBUG("Can't find dos file name");
|
||||
ERROR("Can't find dos file name");
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
@@ -74,6 +74,10 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
|
||||
uint16_t data_size;
|
||||
FRESULT res;
|
||||
|
||||
//Отключить все нагреватели
|
||||
OUT_WRITE(HEATER_0_PIN, HEATER_0_INVERTING);
|
||||
OUT_WRITE(HEATER_1_PIN, HEATER_0_INVERTING);
|
||||
OUT_WRITE(HEATER_BED_PIN, HEATER_0_INVERTING);
|
||||
|
||||
//Установить имя файла. Смещение на 3 байта, чтобы добавить путь к диску
|
||||
str[0]='0';
|
||||
@@ -92,7 +96,7 @@ void mks_wifi_start_file_upload(ESP_PROTOC_FRAME *packet){
|
||||
//открыть файл для записи
|
||||
res=f_open((FIL *)&upload_file,str,FA_CREATE_ALWAYS | FA_WRITE);
|
||||
if(res){
|
||||
DEBUG("File open error %d",res);
|
||||
ERROR("File open error %d",res);
|
||||
mks_wifi_sd_deinit();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
/*
|
||||
#include "mks_wifi_sd_low_lev.h"
|
||||
#include "../../sd/Sd2Card_sdio.h"
|
||||
#include "../../HAL/STM32F1/sdio.h"
|
||||
|
||||
//volatile uint8_t __attribute__ ((aligned (4))) align_buff[512];
|
||||
|
||||
extern SDIO_CardInfoTypeDef SdCard;
|
||||
|
||||
uint8_t sd_init(void){
|
||||
|
||||
if(SDIO_Init()){
|
||||
return 0;
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t sd_get_rca(void){
|
||||
return SdCard.RelCardAdd;
|
||||
}
|
||||
|
||||
|
||||
uint8_t sd_read(uint8_t *buf, uint32_t sector,uint32_t count){
|
||||
uint8_t res;
|
||||
uint8_t *ptr;
|
||||
|
||||
while (count--){
|
||||
if ((0x03 & (uint32_t)buf)){
|
||||
ptr=(uint8_t*)align_buff;
|
||||
}else{
|
||||
ptr=buf;
|
||||
}
|
||||
|
||||
res=SDIO_ReadBlock(sector,ptr);
|
||||
if(!res){
|
||||
ERROR("Read error");
|
||||
return 1;
|
||||
}else{
|
||||
if ((0x03 & (uint32_t)buf)){
|
||||
memcpy((uint8_t *)buf,(uint8_t *)align_buff,512);
|
||||
}
|
||||
sector++;
|
||||
buf=buf+512;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
uint8_t sd_write(uint8_t *buf, uint32_t sector,uint32_t count){
|
||||
uint8_t res;
|
||||
uint8_t *ptr;
|
||||
|
||||
while (count--){
|
||||
if ((0x03 & (uint32_t)buf)){
|
||||
memcpy((uint8_t *)align_buff,(uint8_t *)buf,512);
|
||||
ptr=(uint8_t*)align_buff;
|
||||
}else{
|
||||
ptr=buf;
|
||||
}
|
||||
|
||||
res=SDIO_WriteBlock(sector,ptr);
|
||||
if(!res){
|
||||
ERROR("Write block error");
|
||||
return 1;
|
||||
}else{
|
||||
sector++;
|
||||
buf=buf+512;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
*/
|
||||
@@ -1,15 +0,0 @@
|
||||
/*
|
||||
#ifndef MKS_WIFI_SD_LL_H
|
||||
#define MKS_WIFI_SD_LL_H
|
||||
|
||||
#include "mks_wifi.h"
|
||||
|
||||
|
||||
uint8_t sd_init(void);
|
||||
uint8_t sd_read(uint8_t *buf, uint32_t sector,uint32_t count);
|
||||
uint8_t sd_write(uint8_t *buf, uint32_t sector,uint32_t count);
|
||||
uint32_t sd_get_rca(void);
|
||||
|
||||
#endif
|
||||
|
||||
*/
|
||||
@@ -6,6 +6,55 @@
|
||||
#define __IO volatile /*!< Defines 'read / write' permissions */
|
||||
#define __I volatile const /*!< Defines 'read only' permissions */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__IO uint32_t CTRL; /*!< Offset: 0x000 (R/W) Control Register */
|
||||
__IO uint32_t CYCCNT; /*!< Offset: 0x004 (R/W) Cycle Count Register */
|
||||
__IO uint32_t CPICNT; /*!< Offset: 0x008 (R/W) CPI Count Register */
|
||||
__IO uint32_t EXCCNT; /*!< Offset: 0x00C (R/W) Exception Overhead Count Register */
|
||||
__IO uint32_t SLEEPCNT; /*!< Offset: 0x010 (R/W) Sleep Count Register */
|
||||
__IO uint32_t LSUCNT; /*!< Offset: 0x014 (R/W) LSU Count Register */
|
||||
__IO uint32_t FOLDCNT; /*!< Offset: 0x018 (R/W) Folded-instruction Count Register */
|
||||
__I uint32_t PCSR; /*!< Offset: 0x01C (R/ ) Program Counter Sample Register */
|
||||
__IO uint32_t COMP0; /*!< Offset: 0x020 (R/W) Comparator Register 0 */
|
||||
__IO uint32_t MASK0; /*!< Offset: 0x024 (R/W) Mask Register 0 */
|
||||
__IO uint32_t FUNCTION0; /*!< Offset: 0x028 (R/W) Function Register 0 */
|
||||
uint32_t RESERVED0[1U];
|
||||
__IO uint32_t COMP1; /*!< Offset: 0x030 (R/W) Comparator Register 1 */
|
||||
__IO uint32_t MASK1; /*!< Offset: 0x034 (R/W) Mask Register 1 */
|
||||
__IO uint32_t FUNCTION1; /*!< Offset: 0x038 (R/W) Function Register 1 */
|
||||
uint32_t RESERVED1[1U];
|
||||
__IO uint32_t COMP2; /*!< Offset: 0x040 (R/W) Comparator Register 2 */
|
||||
__IO uint32_t MASK2; /*!< Offset: 0x044 (R/W) Mask Register 2 */
|
||||
__IO uint32_t FUNCTION2; /*!< Offset: 0x048 (R/W) Function Register 2 */
|
||||
uint32_t RESERVED2[1U];
|
||||
__IO uint32_t COMP3; /*!< Offset: 0x050 (R/W) Comparator Register 3 */
|
||||
__IO uint32_t MASK3; /*!< Offset: 0x054 (R/W) Mask Register 3 */
|
||||
__IO uint32_t FUNCTION3; /*!< Offset: 0x058 (R/W) Function Register 3 */
|
||||
} DWT_Type;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__IO uint32_t DHCSR; /*!< Offset: 0x000 (R/W) Debug Halting Control and Status Register */
|
||||
__IO uint32_t DCRSR; /*!< Offset: 0x004 ( /W) Debug Core Register Selector Register */
|
||||
__IO uint32_t DCRDR; /*!< Offset: 0x008 (R/W) Debug Core Register Data Register */
|
||||
__IO uint32_t DEMCR; /*!< Offset: 0x00C (R/W) Debug Exception and Monitor Control Register */
|
||||
} CoreDebug_Type;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__IO uint32_t CRL;
|
||||
__IO uint32_t CRH;
|
||||
__IO uint32_t IDR;
|
||||
__IO uint32_t ODR;
|
||||
__IO uint32_t BSRR;
|
||||
__IO uint32_t BRR;
|
||||
__IO uint32_t LCKR;
|
||||
} GPIO_TypeDef;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__IO uint32_t SR; /*!< USART Status register, Address offset: 0x00 */
|
||||
@@ -71,8 +120,32 @@ typedef struct
|
||||
|
||||
} RCC_TypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__IO uint32_t CR1;
|
||||
__IO uint32_t CR2;
|
||||
__IO uint32_t OAR1;
|
||||
__IO uint32_t OAR2;
|
||||
__IO uint32_t DR;
|
||||
__IO uint32_t SR1;
|
||||
__IO uint32_t SR2;
|
||||
__IO uint32_t CCR;
|
||||
__IO uint32_t TRISE;
|
||||
} I2C_TypeDef;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
__IO uint32_t EVCR;
|
||||
__IO uint32_t MAPR;
|
||||
__IO uint32_t EXTICR[4];
|
||||
uint32_t RESERVED0;
|
||||
__IO uint32_t MAPR2;
|
||||
} AFIO_TypeDef;
|
||||
|
||||
|
||||
|
||||
#define PERIPH_BASE 0x40000000U /*!< Peripheral base address in the alias region */
|
||||
#define APB1PERIPH_BASE PERIPH_BASE
|
||||
#define APB2PERIPH_BASE (PERIPH_BASE + 0x00010000U)
|
||||
#define AHBPERIPH_BASE (PERIPH_BASE + 0x00020000U)
|
||||
#define USART1_BASE (APB2PERIPH_BASE + 0x00003800U)
|
||||
@@ -81,7 +154,12 @@ typedef struct
|
||||
#define DMA2_BASE (AHBPERIPH_BASE + 0x00000400U)
|
||||
#define DMA2_Channel4_BASE (AHBPERIPH_BASE + 0x00000444U)
|
||||
#define SDIO_BASE (PERIPH_BASE + 0x00018000U)
|
||||
//#define RCC_BASE (AHBPERIPH_BASE + 0x00001000U)
|
||||
#define I2C1_BASE (APB1PERIPH_BASE + 0x00005400U)
|
||||
#define PORTB_BASE (APB2PERIPH_BASE + 0x00000C00U)
|
||||
#define AFIOBASE (APB2PERIPH_BASE + 0x00000000U)
|
||||
#define CoreDebug_BASE (0xE000EDF0UL) /*!< Core Debug Base Address */
|
||||
#define DWT_BASE (0xE0001000UL) /*!< DWT Base Address */
|
||||
|
||||
|
||||
#define RCC ((RCC_TypeDef *)RCC_BASE)
|
||||
#define SDIO ((SDIO_TypeDef *)SDIO_BASE)
|
||||
@@ -90,7 +168,11 @@ typedef struct
|
||||
#define DMA1_Channel5 ((DMA_Channel_TypeDef *)DMA1_Channel5_BASE)
|
||||
#define DMA2_Channel4 ((DMA_Channel_TypeDef *)DMA2_Channel4_BASE)
|
||||
#define DMA2 ((DMA_TypeDef *)DMA2_BASE)
|
||||
|
||||
#define I2C1 ((I2C_TypeDef *)I2C1_BASE)
|
||||
#define PORTB ((GPIO_TypeDef *)PORTB_BASE)
|
||||
#define AFIO ((AFIO_TypeDef *)AFIOBASE)
|
||||
#define CoreDebug ((CoreDebug_Type *)CoreDebug_BASE) /*!< Core Debug configuration struct */
|
||||
#define DWT ((DWT_Type *) DWT_BASE ) /*!< DWT configuration struct */
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* Universal Synchronous Asynchronous Receiver Transmitter */
|
||||
@@ -871,4 +953,756 @@ typedef struct
|
||||
#define SDIO_FIFO_FIFODATA_Msk (0xFFFFFFFFU << SDIO_FIFO_FIFODATA_Pos) /*!< 0xFFFFFFFF */
|
||||
#define SDIO_FIFO_FIFODATA SDIO_FIFO_FIFODATA_Msk /*!< Receive and transmit FIFO data */
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* Inter-integrated Circuit Interface */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
/******************* Bit definition for I2C_CR1 register ********************/
|
||||
#define I2C_CR1_PE_Pos (0U)
|
||||
#define I2C_CR1_PE_Msk (0x1U << I2C_CR1_PE_Pos) /*!< 0x00000001 */
|
||||
#define I2C_CR1_PE I2C_CR1_PE_Msk /*!< Peripheral Enable */
|
||||
#define I2C_CR1_SMBUS_Pos (1U)
|
||||
#define I2C_CR1_SMBUS_Msk (0x1U << I2C_CR1_SMBUS_Pos) /*!< 0x00000002 */
|
||||
#define I2C_CR1_SMBUS I2C_CR1_SMBUS_Msk /*!< SMBus Mode */
|
||||
#define I2C_CR1_SMBTYPE_Pos (3U)
|
||||
#define I2C_CR1_SMBTYPE_Msk (0x1U << I2C_CR1_SMBTYPE_Pos) /*!< 0x00000008 */
|
||||
#define I2C_CR1_SMBTYPE I2C_CR1_SMBTYPE_Msk /*!< SMBus Type */
|
||||
#define I2C_CR1_ENARP_Pos (4U)
|
||||
#define I2C_CR1_ENARP_Msk (0x1U << I2C_CR1_ENARP_Pos) /*!< 0x00000010 */
|
||||
#define I2C_CR1_ENARP I2C_CR1_ENARP_Msk /*!< ARP Enable */
|
||||
#define I2C_CR1_ENPEC_Pos (5U)
|
||||
#define I2C_CR1_ENPEC_Msk (0x1U << I2C_CR1_ENPEC_Pos) /*!< 0x00000020 */
|
||||
#define I2C_CR1_ENPEC I2C_CR1_ENPEC_Msk /*!< PEC Enable */
|
||||
#define I2C_CR1_ENGC_Pos (6U)
|
||||
#define I2C_CR1_ENGC_Msk (0x1U << I2C_CR1_ENGC_Pos) /*!< 0x00000040 */
|
||||
#define I2C_CR1_ENGC I2C_CR1_ENGC_Msk /*!< General Call Enable */
|
||||
#define I2C_CR1_NOSTRETCH_Pos (7U)
|
||||
#define I2C_CR1_NOSTRETCH_Msk (0x1U << I2C_CR1_NOSTRETCH_Pos) /*!< 0x00000080 */
|
||||
#define I2C_CR1_NOSTRETCH I2C_CR1_NOSTRETCH_Msk /*!< Clock Stretching Disable (Slave mode) */
|
||||
#define I2C_CR1_START_Pos (8U)
|
||||
#define I2C_CR1_START_Msk (0x1U << I2C_CR1_START_Pos) /*!< 0x00000100 */
|
||||
#define I2C_CR1_START I2C_CR1_START_Msk /*!< Start Generation */
|
||||
#define I2C_CR1_STOP_Pos (9U)
|
||||
#define I2C_CR1_STOP_Msk (0x1U << I2C_CR1_STOP_Pos) /*!< 0x00000200 */
|
||||
#define I2C_CR1_STOP I2C_CR1_STOP_Msk /*!< Stop Generation */
|
||||
#define I2C_CR1_ACK_Pos (10U)
|
||||
#define I2C_CR1_ACK_Msk (0x1U << I2C_CR1_ACK_Pos) /*!< 0x00000400 */
|
||||
#define I2C_CR1_ACK I2C_CR1_ACK_Msk /*!< Acknowledge Enable */
|
||||
#define I2C_CR1_POS_Pos (11U)
|
||||
#define I2C_CR1_POS_Msk (0x1U << I2C_CR1_POS_Pos) /*!< 0x00000800 */
|
||||
#define I2C_CR1_POS I2C_CR1_POS_Msk /*!< Acknowledge/PEC Position (for data reception) */
|
||||
#define I2C_CR1_PEC_Pos (12U)
|
||||
#define I2C_CR1_PEC_Msk (0x1U << I2C_CR1_PEC_Pos) /*!< 0x00001000 */
|
||||
#define I2C_CR1_PEC I2C_CR1_PEC_Msk /*!< Packet Error Checking */
|
||||
#define I2C_CR1_ALERT_Pos (13U)
|
||||
#define I2C_CR1_ALERT_Msk (0x1U << I2C_CR1_ALERT_Pos) /*!< 0x00002000 */
|
||||
#define I2C_CR1_ALERT I2C_CR1_ALERT_Msk /*!< SMBus Alert */
|
||||
#define I2C_CR1_SWRST_Pos (15U)
|
||||
#define I2C_CR1_SWRST_Msk (0x1U << I2C_CR1_SWRST_Pos) /*!< 0x00008000 */
|
||||
#define I2C_CR1_SWRST I2C_CR1_SWRST_Msk /*!< Software Reset */
|
||||
|
||||
/******************* Bit definition for I2C_CR2 register ********************/
|
||||
#define I2C_CR2_FREQ_Pos (0U)
|
||||
#define I2C_CR2_FREQ_Msk (0x3FU << I2C_CR2_FREQ_Pos) /*!< 0x0000003F */
|
||||
#define I2C_CR2_FREQ I2C_CR2_FREQ_Msk /*!< FREQ[5:0] bits (Peripheral Clock Frequency) */
|
||||
#define I2C_CR2_FREQ_0 (0x01U << I2C_CR2_FREQ_Pos) /*!< 0x00000001 */
|
||||
#define I2C_CR2_FREQ_1 (0x02U << I2C_CR2_FREQ_Pos) /*!< 0x00000002 */
|
||||
#define I2C_CR2_FREQ_2 (0x04U << I2C_CR2_FREQ_Pos) /*!< 0x00000004 */
|
||||
#define I2C_CR2_FREQ_3 (0x08U << I2C_CR2_FREQ_Pos) /*!< 0x00000008 */
|
||||
#define I2C_CR2_FREQ_4 (0x10U << I2C_CR2_FREQ_Pos) /*!< 0x00000010 */
|
||||
#define I2C_CR2_FREQ_5 (0x20U << I2C_CR2_FREQ_Pos) /*!< 0x00000020 */
|
||||
|
||||
#define I2C_CR2_ITERREN_Pos (8U)
|
||||
#define I2C_CR2_ITERREN_Msk (0x1U << I2C_CR2_ITERREN_Pos) /*!< 0x00000100 */
|
||||
#define I2C_CR2_ITERREN I2C_CR2_ITERREN_Msk /*!< Error Interrupt Enable */
|
||||
#define I2C_CR2_ITEVTEN_Pos (9U)
|
||||
#define I2C_CR2_ITEVTEN_Msk (0x1U << I2C_CR2_ITEVTEN_Pos) /*!< 0x00000200 */
|
||||
#define I2C_CR2_ITEVTEN I2C_CR2_ITEVTEN_Msk /*!< Event Interrupt Enable */
|
||||
#define I2C_CR2_ITBUFEN_Pos (10U)
|
||||
#define I2C_CR2_ITBUFEN_Msk (0x1U << I2C_CR2_ITBUFEN_Pos) /*!< 0x00000400 */
|
||||
#define I2C_CR2_ITBUFEN I2C_CR2_ITBUFEN_Msk /*!< Buffer Interrupt Enable */
|
||||
#define I2C_CR2_DMAEN_Pos (11U)
|
||||
#define I2C_CR2_DMAEN_Msk (0x1U << I2C_CR2_DMAEN_Pos) /*!< 0x00000800 */
|
||||
#define I2C_CR2_DMAEN I2C_CR2_DMAEN_Msk /*!< DMA Requests Enable */
|
||||
#define I2C_CR2_LAST_Pos (12U)
|
||||
#define I2C_CR2_LAST_Msk (0x1U << I2C_CR2_LAST_Pos) /*!< 0x00001000 */
|
||||
#define I2C_CR2_LAST I2C_CR2_LAST_Msk /*!< DMA Last Transfer */
|
||||
|
||||
/******************* Bit definition for I2C_OAR1 register *******************/
|
||||
#define I2C_OAR1_ADD1_7 0x000000FEU /*!< Interface Address */
|
||||
#define I2C_OAR1_ADD8_9 0x00000300U /*!< Interface Address */
|
||||
|
||||
#define I2C_OAR1_ADD0_Pos (0U)
|
||||
#define I2C_OAR1_ADD0_Msk (0x1U << I2C_OAR1_ADD0_Pos) /*!< 0x00000001 */
|
||||
#define I2C_OAR1_ADD0 I2C_OAR1_ADD0_Msk /*!< Bit 0 */
|
||||
#define I2C_OAR1_ADD1_Pos (1U)
|
||||
#define I2C_OAR1_ADD1_Msk (0x1U << I2C_OAR1_ADD1_Pos) /*!< 0x00000002 */
|
||||
#define I2C_OAR1_ADD1 I2C_OAR1_ADD1_Msk /*!< Bit 1 */
|
||||
#define I2C_OAR1_ADD2_Pos (2U)
|
||||
#define I2C_OAR1_ADD2_Msk (0x1U << I2C_OAR1_ADD2_Pos) /*!< 0x00000004 */
|
||||
#define I2C_OAR1_ADD2 I2C_OAR1_ADD2_Msk /*!< Bit 2 */
|
||||
#define I2C_OAR1_ADD3_Pos (3U)
|
||||
#define I2C_OAR1_ADD3_Msk (0x1U << I2C_OAR1_ADD3_Pos) /*!< 0x00000008 */
|
||||
#define I2C_OAR1_ADD3 I2C_OAR1_ADD3_Msk /*!< Bit 3 */
|
||||
#define I2C_OAR1_ADD4_Pos (4U)
|
||||
#define I2C_OAR1_ADD4_Msk (0x1U << I2C_OAR1_ADD4_Pos) /*!< 0x00000010 */
|
||||
#define I2C_OAR1_ADD4 I2C_OAR1_ADD4_Msk /*!< Bit 4 */
|
||||
#define I2C_OAR1_ADD5_Pos (5U)
|
||||
#define I2C_OAR1_ADD5_Msk (0x1U << I2C_OAR1_ADD5_Pos) /*!< 0x00000020 */
|
||||
#define I2C_OAR1_ADD5 I2C_OAR1_ADD5_Msk /*!< Bit 5 */
|
||||
#define I2C_OAR1_ADD6_Pos (6U)
|
||||
#define I2C_OAR1_ADD6_Msk (0x1U << I2C_OAR1_ADD6_Pos) /*!< 0x00000040 */
|
||||
#define I2C_OAR1_ADD6 I2C_OAR1_ADD6_Msk /*!< Bit 6 */
|
||||
#define I2C_OAR1_ADD7_Pos (7U)
|
||||
#define I2C_OAR1_ADD7_Msk (0x1U << I2C_OAR1_ADD7_Pos) /*!< 0x00000080 */
|
||||
#define I2C_OAR1_ADD7 I2C_OAR1_ADD7_Msk /*!< Bit 7 */
|
||||
#define I2C_OAR1_ADD8_Pos (8U)
|
||||
#define I2C_OAR1_ADD8_Msk (0x1U << I2C_OAR1_ADD8_Pos) /*!< 0x00000100 */
|
||||
#define I2C_OAR1_ADD8 I2C_OAR1_ADD8_Msk /*!< Bit 8 */
|
||||
#define I2C_OAR1_ADD9_Pos (9U)
|
||||
#define I2C_OAR1_ADD9_Msk (0x1U << I2C_OAR1_ADD9_Pos) /*!< 0x00000200 */
|
||||
#define I2C_OAR1_ADD9 I2C_OAR1_ADD9_Msk /*!< Bit 9 */
|
||||
|
||||
#define I2C_OAR1_ADDMODE_Pos (15U)
|
||||
#define I2C_OAR1_ADDMODE_Msk (0x1U << I2C_OAR1_ADDMODE_Pos) /*!< 0x00008000 */
|
||||
#define I2C_OAR1_ADDMODE I2C_OAR1_ADDMODE_Msk /*!< Addressing Mode (Slave mode) */
|
||||
|
||||
/******************* Bit definition for I2C_OAR2 register *******************/
|
||||
#define I2C_OAR2_ENDUAL_Pos (0U)
|
||||
#define I2C_OAR2_ENDUAL_Msk (0x1U << I2C_OAR2_ENDUAL_Pos) /*!< 0x00000001 */
|
||||
#define I2C_OAR2_ENDUAL I2C_OAR2_ENDUAL_Msk /*!< Dual addressing mode enable */
|
||||
#define I2C_OAR2_ADD2_Pos (1U)
|
||||
#define I2C_OAR2_ADD2_Msk (0x7FU << I2C_OAR2_ADD2_Pos) /*!< 0x000000FE */
|
||||
#define I2C_OAR2_ADD2 I2C_OAR2_ADD2_Msk /*!< Interface address */
|
||||
|
||||
/******************** Bit definition for I2C_DR register ********************/
|
||||
#define I2C_DR_DR_Pos (0U)
|
||||
#define I2C_DR_DR_Msk (0xFFU << I2C_DR_DR_Pos) /*!< 0x000000FF */
|
||||
#define I2C_DR_DR I2C_DR_DR_Msk /*!< 8-bit Data Register */
|
||||
|
||||
/******************* Bit definition for I2C_SR1 register ********************/
|
||||
#define I2C_SR1_SB_Pos (0U)
|
||||
#define I2C_SR1_SB_Msk (0x1U << I2C_SR1_SB_Pos) /*!< 0x00000001 */
|
||||
#define I2C_SR1_SB I2C_SR1_SB_Msk /*!< Start Bit (Master mode) */
|
||||
#define I2C_SR1_ADDR_Pos (1U)
|
||||
#define I2C_SR1_ADDR_Msk (0x1U << I2C_SR1_ADDR_Pos) /*!< 0x00000002 */
|
||||
#define I2C_SR1_ADDR I2C_SR1_ADDR_Msk /*!< Address sent (master mode)/matched (slave mode) */
|
||||
#define I2C_SR1_BTF_Pos (2U)
|
||||
#define I2C_SR1_BTF_Msk (0x1U << I2C_SR1_BTF_Pos) /*!< 0x00000004 */
|
||||
#define I2C_SR1_BTF I2C_SR1_BTF_Msk /*!< Byte Transfer Finished */
|
||||
#define I2C_SR1_ADD10_Pos (3U)
|
||||
#define I2C_SR1_ADD10_Msk (0x1U << I2C_SR1_ADD10_Pos) /*!< 0x00000008 */
|
||||
#define I2C_SR1_ADD10 I2C_SR1_ADD10_Msk /*!< 10-bit header sent (Master mode) */
|
||||
#define I2C_SR1_STOPF_Pos (4U)
|
||||
#define I2C_SR1_STOPF_Msk (0x1U << I2C_SR1_STOPF_Pos) /*!< 0x00000010 */
|
||||
#define I2C_SR1_STOPF I2C_SR1_STOPF_Msk /*!< Stop detection (Slave mode) */
|
||||
#define I2C_SR1_RXNE_Pos (6U)
|
||||
#define I2C_SR1_RXNE_Msk (0x1U << I2C_SR1_RXNE_Pos) /*!< 0x00000040 */
|
||||
#define I2C_SR1_RXNE I2C_SR1_RXNE_Msk /*!< Data Register not Empty (receivers) */
|
||||
#define I2C_SR1_TXE_Pos (7U)
|
||||
#define I2C_SR1_TXE_Msk (0x1U << I2C_SR1_TXE_Pos) /*!< 0x00000080 */
|
||||
#define I2C_SR1_TXE I2C_SR1_TXE_Msk /*!< Data Register Empty (transmitters) */
|
||||
#define I2C_SR1_BERR_Pos (8U)
|
||||
#define I2C_SR1_BERR_Msk (0x1U << I2C_SR1_BERR_Pos) /*!< 0x00000100 */
|
||||
#define I2C_SR1_BERR I2C_SR1_BERR_Msk /*!< Bus Error */
|
||||
#define I2C_SR1_ARLO_Pos (9U)
|
||||
#define I2C_SR1_ARLO_Msk (0x1U << I2C_SR1_ARLO_Pos) /*!< 0x00000200 */
|
||||
#define I2C_SR1_ARLO I2C_SR1_ARLO_Msk /*!< Arbitration Lost (master mode) */
|
||||
#define I2C_SR1_AF_Pos (10U)
|
||||
#define I2C_SR1_AF_Msk (0x1U << I2C_SR1_AF_Pos) /*!< 0x00000400 */
|
||||
#define I2C_SR1_AF I2C_SR1_AF_Msk /*!< Acknowledge Failure */
|
||||
#define I2C_SR1_OVR_Pos (11U)
|
||||
#define I2C_SR1_OVR_Msk (0x1U << I2C_SR1_OVR_Pos) /*!< 0x00000800 */
|
||||
#define I2C_SR1_OVR I2C_SR1_OVR_Msk /*!< Overrun/Underrun */
|
||||
#define I2C_SR1_PECERR_Pos (12U)
|
||||
#define I2C_SR1_PECERR_Msk (0x1U << I2C_SR1_PECERR_Pos) /*!< 0x00001000 */
|
||||
#define I2C_SR1_PECERR I2C_SR1_PECERR_Msk /*!< PEC Error in reception */
|
||||
#define I2C_SR1_TIMEOUT_Pos (14U)
|
||||
#define I2C_SR1_TIMEOUT_Msk (0x1U << I2C_SR1_TIMEOUT_Pos) /*!< 0x00004000 */
|
||||
#define I2C_SR1_TIMEOUT I2C_SR1_TIMEOUT_Msk /*!< Timeout or Tlow Error */
|
||||
#define I2C_SR1_SMBALERT_Pos (15U)
|
||||
#define I2C_SR1_SMBALERT_Msk (0x1U << I2C_SR1_SMBALERT_Pos) /*!< 0x00008000 */
|
||||
#define I2C_SR1_SMBALERT I2C_SR1_SMBALERT_Msk /*!< SMBus Alert */
|
||||
|
||||
/******************* Bit definition for I2C_SR2 register ********************/
|
||||
#define I2C_SR2_MSL_Pos (0U)
|
||||
#define I2C_SR2_MSL_Msk (0x1U << I2C_SR2_MSL_Pos) /*!< 0x00000001 */
|
||||
#define I2C_SR2_MSL I2C_SR2_MSL_Msk /*!< Master/Slave */
|
||||
#define I2C_SR2_BUSY_Pos (1U)
|
||||
#define I2C_SR2_BUSY_Msk (0x1U << I2C_SR2_BUSY_Pos) /*!< 0x00000002 */
|
||||
#define I2C_SR2_BUSY I2C_SR2_BUSY_Msk /*!< Bus Busy */
|
||||
#define I2C_SR2_TRA_Pos (2U)
|
||||
#define I2C_SR2_TRA_Msk (0x1U << I2C_SR2_TRA_Pos) /*!< 0x00000004 */
|
||||
#define I2C_SR2_TRA I2C_SR2_TRA_Msk /*!< Transmitter/Receiver */
|
||||
#define I2C_SR2_GENCALL_Pos (4U)
|
||||
#define I2C_SR2_GENCALL_Msk (0x1U << I2C_SR2_GENCALL_Pos) /*!< 0x00000010 */
|
||||
#define I2C_SR2_GENCALL I2C_SR2_GENCALL_Msk /*!< General Call Address (Slave mode) */
|
||||
#define I2C_SR2_SMBDEFAULT_Pos (5U)
|
||||
#define I2C_SR2_SMBDEFAULT_Msk (0x1U << I2C_SR2_SMBDEFAULT_Pos) /*!< 0x00000020 */
|
||||
#define I2C_SR2_SMBDEFAULT I2C_SR2_SMBDEFAULT_Msk /*!< SMBus Device Default Address (Slave mode) */
|
||||
#define I2C_SR2_SMBHOST_Pos (6U)
|
||||
#define I2C_SR2_SMBHOST_Msk (0x1U << I2C_SR2_SMBHOST_Pos) /*!< 0x00000040 */
|
||||
#define I2C_SR2_SMBHOST I2C_SR2_SMBHOST_Msk /*!< SMBus Host Header (Slave mode) */
|
||||
#define I2C_SR2_DUALF_Pos (7U)
|
||||
#define I2C_SR2_DUALF_Msk (0x1U << I2C_SR2_DUALF_Pos) /*!< 0x00000080 */
|
||||
#define I2C_SR2_DUALF I2C_SR2_DUALF_Msk /*!< Dual Flag (Slave mode) */
|
||||
#define I2C_SR2_PEC_Pos (8U)
|
||||
#define I2C_SR2_PEC_Msk (0xFFU << I2C_SR2_PEC_Pos) /*!< 0x0000FF00 */
|
||||
#define I2C_SR2_PEC I2C_SR2_PEC_Msk /*!< Packet Error Checking Register */
|
||||
|
||||
/******************* Bit definition for I2C_CCR register ********************/
|
||||
#define I2C_CCR_CCR_Pos (0U)
|
||||
#define I2C_CCR_CCR_Msk (0xFFFU << I2C_CCR_CCR_Pos) /*!< 0x00000FFF */
|
||||
#define I2C_CCR_CCR I2C_CCR_CCR_Msk /*!< Clock Control Register in Fast/Standard mode (Master mode) */
|
||||
#define I2C_CCR_DUTY_Pos (14U)
|
||||
#define I2C_CCR_DUTY_Msk (0x1U << I2C_CCR_DUTY_Pos) /*!< 0x00004000 */
|
||||
#define I2C_CCR_DUTY I2C_CCR_DUTY_Msk /*!< Fast Mode Duty Cycle */
|
||||
#define I2C_CCR_FS_Pos (15U)
|
||||
#define I2C_CCR_FS_Msk (0x1U << I2C_CCR_FS_Pos) /*!< 0x00008000 */
|
||||
#define I2C_CCR_FS I2C_CCR_FS_Msk /*!< I2C Master Mode Selection */
|
||||
|
||||
/****************** Bit definition for I2C_TRISE register *******************/
|
||||
#define I2C_TRISE_TRISE_Pos (0U)
|
||||
#define I2C_TRISE_TRISE_Msk (0x3FU << I2C_TRISE_TRISE_Pos) /*!< 0x0000003F */
|
||||
#define I2C_TRISE_TRISE I2C_TRISE_TRISE_Msk /*!< Maximum Rise Time in Fast/Standard mode (Master mode) */
|
||||
|
||||
/******************************************************************************/
|
||||
/* */
|
||||
/* General Purpose and Alternate Function I/O */
|
||||
/* */
|
||||
/******************************************************************************/
|
||||
|
||||
/******************* Bit definition for GPIO_CRL register *******************/
|
||||
#define GPIO_CRL_MODE_Pos (0U)
|
||||
#define GPIO_CRL_MODE_Msk (0x33333333U << GPIO_CRL_MODE_Pos) /*!< 0x33333333 */
|
||||
#define GPIO_CRL_MODE GPIO_CRL_MODE_Msk /*!< Port x mode bits */
|
||||
|
||||
#define GPIO_CRL_MODE0_Pos (0U)
|
||||
#define GPIO_CRL_MODE0_Msk (0x3U << GPIO_CRL_MODE0_Pos) /*!< 0x00000003 */
|
||||
#define GPIO_CRL_MODE0 GPIO_CRL_MODE0_Msk /*!< MODE0[1:0] bits (Port x mode bits, pin 0) */
|
||||
#define GPIO_CRL_MODE0_0 (0x1U << GPIO_CRL_MODE0_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_CRL_MODE0_1 (0x2U << GPIO_CRL_MODE0_Pos) /*!< 0x00000002 */
|
||||
|
||||
#define GPIO_CRL_MODE1_Pos (4U)
|
||||
#define GPIO_CRL_MODE1_Msk (0x3U << GPIO_CRL_MODE1_Pos) /*!< 0x00000030 */
|
||||
#define GPIO_CRL_MODE1 GPIO_CRL_MODE1_Msk /*!< MODE1[1:0] bits (Port x mode bits, pin 1) */
|
||||
#define GPIO_CRL_MODE1_0 (0x1U << GPIO_CRL_MODE1_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_CRL_MODE1_1 (0x2U << GPIO_CRL_MODE1_Pos) /*!< 0x00000020 */
|
||||
|
||||
#define GPIO_CRL_MODE2_Pos (8U)
|
||||
#define GPIO_CRL_MODE2_Msk (0x3U << GPIO_CRL_MODE2_Pos) /*!< 0x00000300 */
|
||||
#define GPIO_CRL_MODE2 GPIO_CRL_MODE2_Msk /*!< MODE2[1:0] bits (Port x mode bits, pin 2) */
|
||||
#define GPIO_CRL_MODE2_0 (0x1U << GPIO_CRL_MODE2_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_CRL_MODE2_1 (0x2U << GPIO_CRL_MODE2_Pos) /*!< 0x00000200 */
|
||||
|
||||
#define GPIO_CRL_MODE3_Pos (12U)
|
||||
#define GPIO_CRL_MODE3_Msk (0x3U << GPIO_CRL_MODE3_Pos) /*!< 0x00003000 */
|
||||
#define GPIO_CRL_MODE3 GPIO_CRL_MODE3_Msk /*!< MODE3[1:0] bits (Port x mode bits, pin 3) */
|
||||
#define GPIO_CRL_MODE3_0 (0x1U << GPIO_CRL_MODE3_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_CRL_MODE3_1 (0x2U << GPIO_CRL_MODE3_Pos) /*!< 0x00002000 */
|
||||
|
||||
#define GPIO_CRL_MODE4_Pos (16U)
|
||||
#define GPIO_CRL_MODE4_Msk (0x3U << GPIO_CRL_MODE4_Pos) /*!< 0x00030000 */
|
||||
#define GPIO_CRL_MODE4 GPIO_CRL_MODE4_Msk /*!< MODE4[1:0] bits (Port x mode bits, pin 4) */
|
||||
#define GPIO_CRL_MODE4_0 (0x1U << GPIO_CRL_MODE4_Pos) /*!< 0x00010000 */
|
||||
#define GPIO_CRL_MODE4_1 (0x2U << GPIO_CRL_MODE4_Pos) /*!< 0x00020000 */
|
||||
|
||||
#define GPIO_CRL_MODE5_Pos (20U)
|
||||
#define GPIO_CRL_MODE5_Msk (0x3U << GPIO_CRL_MODE5_Pos) /*!< 0x00300000 */
|
||||
#define GPIO_CRL_MODE5 GPIO_CRL_MODE5_Msk /*!< MODE5[1:0] bits (Port x mode bits, pin 5) */
|
||||
#define GPIO_CRL_MODE5_0 (0x1U << GPIO_CRL_MODE5_Pos) /*!< 0x00100000 */
|
||||
#define GPIO_CRL_MODE5_1 (0x2U << GPIO_CRL_MODE5_Pos) /*!< 0x00200000 */
|
||||
|
||||
#define GPIO_CRL_MODE6_Pos (24U)
|
||||
#define GPIO_CRL_MODE6_Msk (0x3U << GPIO_CRL_MODE6_Pos) /*!< 0x03000000 */
|
||||
#define GPIO_CRL_MODE6 GPIO_CRL_MODE6_Msk /*!< MODE6[1:0] bits (Port x mode bits, pin 6) */
|
||||
#define GPIO_CRL_MODE6_0 (0x1U << GPIO_CRL_MODE6_Pos) /*!< 0x01000000 */
|
||||
#define GPIO_CRL_MODE6_1 (0x2U << GPIO_CRL_MODE6_Pos) /*!< 0x02000000 */
|
||||
|
||||
#define GPIO_CRL_MODE7_Pos (28U)
|
||||
#define GPIO_CRL_MODE7_Msk (0x3U << GPIO_CRL_MODE7_Pos) /*!< 0x30000000 */
|
||||
#define GPIO_CRL_MODE7 GPIO_CRL_MODE7_Msk /*!< MODE7[1:0] bits (Port x mode bits, pin 7) */
|
||||
#define GPIO_CRL_MODE7_0 (0x1U << GPIO_CRL_MODE7_Pos) /*!< 0x10000000 */
|
||||
#define GPIO_CRL_MODE7_1 (0x2U << GPIO_CRL_MODE7_Pos) /*!< 0x20000000 */
|
||||
|
||||
#define GPIO_CRL_CNF_Pos (2U)
|
||||
#define GPIO_CRL_CNF_Msk (0x33333333U << GPIO_CRL_CNF_Pos) /*!< 0xCCCCCCCC */
|
||||
#define GPIO_CRL_CNF GPIO_CRL_CNF_Msk /*!< Port x configuration bits */
|
||||
|
||||
#define GPIO_CRL_CNF0_Pos (2U)
|
||||
#define GPIO_CRL_CNF0_Msk (0x3U << GPIO_CRL_CNF0_Pos) /*!< 0x0000000C */
|
||||
#define GPIO_CRL_CNF0 GPIO_CRL_CNF0_Msk /*!< CNF0[1:0] bits (Port x configuration bits, pin 0) */
|
||||
#define GPIO_CRL_CNF0_0 (0x1U << GPIO_CRL_CNF0_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_CRL_CNF0_1 (0x2U << GPIO_CRL_CNF0_Pos) /*!< 0x00000008 */
|
||||
|
||||
#define GPIO_CRL_CNF1_Pos (6U)
|
||||
#define GPIO_CRL_CNF1_Msk (0x3U << GPIO_CRL_CNF1_Pos) /*!< 0x000000C0 */
|
||||
#define GPIO_CRL_CNF1 GPIO_CRL_CNF1_Msk /*!< CNF1[1:0] bits (Port x configuration bits, pin 1) */
|
||||
#define GPIO_CRL_CNF1_0 (0x1U << GPIO_CRL_CNF1_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_CRL_CNF1_1 (0x2U << GPIO_CRL_CNF1_Pos) /*!< 0x00000080 */
|
||||
|
||||
#define GPIO_CRL_CNF2_Pos (10U)
|
||||
#define GPIO_CRL_CNF2_Msk (0x3U << GPIO_CRL_CNF2_Pos) /*!< 0x00000C00 */
|
||||
#define GPIO_CRL_CNF2 GPIO_CRL_CNF2_Msk /*!< CNF2[1:0] bits (Port x configuration bits, pin 2) */
|
||||
#define GPIO_CRL_CNF2_0 (0x1U << GPIO_CRL_CNF2_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_CRL_CNF2_1 (0x2U << GPIO_CRL_CNF2_Pos) /*!< 0x00000800 */
|
||||
|
||||
#define GPIO_CRL_CNF3_Pos (14U)
|
||||
#define GPIO_CRL_CNF3_Msk (0x3U << GPIO_CRL_CNF3_Pos) /*!< 0x0000C000 */
|
||||
#define GPIO_CRL_CNF3 GPIO_CRL_CNF3_Msk /*!< CNF3[1:0] bits (Port x configuration bits, pin 3) */
|
||||
#define GPIO_CRL_CNF3_0 (0x1U << GPIO_CRL_CNF3_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_CRL_CNF3_1 (0x2U << GPIO_CRL_CNF3_Pos) /*!< 0x00008000 */
|
||||
|
||||
#define GPIO_CRL_CNF4_Pos (18U)
|
||||
#define GPIO_CRL_CNF4_Msk (0x3U << GPIO_CRL_CNF4_Pos) /*!< 0x000C0000 */
|
||||
#define GPIO_CRL_CNF4 GPIO_CRL_CNF4_Msk /*!< CNF4[1:0] bits (Port x configuration bits, pin 4) */
|
||||
#define GPIO_CRL_CNF4_0 (0x1U << GPIO_CRL_CNF4_Pos) /*!< 0x00040000 */
|
||||
#define GPIO_CRL_CNF4_1 (0x2U << GPIO_CRL_CNF4_Pos) /*!< 0x00080000 */
|
||||
|
||||
#define GPIO_CRL_CNF5_Pos (22U)
|
||||
#define GPIO_CRL_CNF5_Msk (0x3U << GPIO_CRL_CNF5_Pos) /*!< 0x00C00000 */
|
||||
#define GPIO_CRL_CNF5 GPIO_CRL_CNF5_Msk /*!< CNF5[1:0] bits (Port x configuration bits, pin 5) */
|
||||
#define GPIO_CRL_CNF5_0 (0x1U << GPIO_CRL_CNF5_Pos) /*!< 0x00400000 */
|
||||
#define GPIO_CRL_CNF5_1 (0x2U << GPIO_CRL_CNF5_Pos) /*!< 0x00800000 */
|
||||
|
||||
#define GPIO_CRL_CNF6_Pos (26U)
|
||||
#define GPIO_CRL_CNF6_Msk (0x3U << GPIO_CRL_CNF6_Pos) /*!< 0x0C000000 */
|
||||
#define GPIO_CRL_CNF6 GPIO_CRL_CNF6_Msk /*!< CNF6[1:0] bits (Port x configuration bits, pin 6) */
|
||||
#define GPIO_CRL_CNF6_0 (0x1U << GPIO_CRL_CNF6_Pos) /*!< 0x04000000 */
|
||||
#define GPIO_CRL_CNF6_1 (0x2U << GPIO_CRL_CNF6_Pos) /*!< 0x08000000 */
|
||||
|
||||
#define GPIO_CRL_CNF7_Pos (30U)
|
||||
#define GPIO_CRL_CNF7_Msk (0x3U << GPIO_CRL_CNF7_Pos) /*!< 0xC0000000 */
|
||||
#define GPIO_CRL_CNF7 GPIO_CRL_CNF7_Msk /*!< CNF7[1:0] bits (Port x configuration bits, pin 7) */
|
||||
#define GPIO_CRL_CNF7_0 (0x1U << GPIO_CRL_CNF7_Pos) /*!< 0x40000000 */
|
||||
#define GPIO_CRL_CNF7_1 (0x2U << GPIO_CRL_CNF7_Pos) /*!< 0x80000000 */
|
||||
|
||||
/******************* Bit definition for GPIO_CRH register *******************/
|
||||
#define GPIO_CRH_MODE_Pos (0U)
|
||||
#define GPIO_CRH_MODE_Msk (0x33333333U << GPIO_CRH_MODE_Pos) /*!< 0x33333333 */
|
||||
#define GPIO_CRH_MODE GPIO_CRH_MODE_Msk /*!< Port x mode bits */
|
||||
|
||||
#define GPIO_CRH_MODE8_Pos (0U)
|
||||
#define GPIO_CRH_MODE8_Msk (0x3U << GPIO_CRH_MODE8_Pos) /*!< 0x00000003 */
|
||||
#define GPIO_CRH_MODE8 GPIO_CRH_MODE8_Msk /*!< MODE8[1:0] bits (Port x mode bits, pin 8) */
|
||||
#define GPIO_CRH_MODE8_0 (0x1U << GPIO_CRH_MODE8_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_CRH_MODE8_1 (0x2U << GPIO_CRH_MODE8_Pos) /*!< 0x00000002 */
|
||||
|
||||
#define GPIO_CRH_MODE9_Pos (4U)
|
||||
#define GPIO_CRH_MODE9_Msk (0x3U << GPIO_CRH_MODE9_Pos) /*!< 0x00000030 */
|
||||
#define GPIO_CRH_MODE9 GPIO_CRH_MODE9_Msk /*!< MODE9[1:0] bits (Port x mode bits, pin 9) */
|
||||
#define GPIO_CRH_MODE9_0 (0x1U << GPIO_CRH_MODE9_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_CRH_MODE9_1 (0x2U << GPIO_CRH_MODE9_Pos) /*!< 0x00000020 */
|
||||
|
||||
#define GPIO_CRH_MODE10_Pos (8U)
|
||||
#define GPIO_CRH_MODE10_Msk (0x3U << GPIO_CRH_MODE10_Pos) /*!< 0x00000300 */
|
||||
#define GPIO_CRH_MODE10 GPIO_CRH_MODE10_Msk /*!< MODE10[1:0] bits (Port x mode bits, pin 10) */
|
||||
#define GPIO_CRH_MODE10_0 (0x1U << GPIO_CRH_MODE10_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_CRH_MODE10_1 (0x2U << GPIO_CRH_MODE10_Pos) /*!< 0x00000200 */
|
||||
|
||||
#define GPIO_CRH_MODE11_Pos (12U)
|
||||
#define GPIO_CRH_MODE11_Msk (0x3U << GPIO_CRH_MODE11_Pos) /*!< 0x00003000 */
|
||||
#define GPIO_CRH_MODE11 GPIO_CRH_MODE11_Msk /*!< MODE11[1:0] bits (Port x mode bits, pin 11) */
|
||||
#define GPIO_CRH_MODE11_0 (0x1U << GPIO_CRH_MODE11_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_CRH_MODE11_1 (0x2U << GPIO_CRH_MODE11_Pos) /*!< 0x00002000 */
|
||||
|
||||
#define GPIO_CRH_MODE12_Pos (16U)
|
||||
#define GPIO_CRH_MODE12_Msk (0x3U << GPIO_CRH_MODE12_Pos) /*!< 0x00030000 */
|
||||
#define GPIO_CRH_MODE12 GPIO_CRH_MODE12_Msk /*!< MODE12[1:0] bits (Port x mode bits, pin 12) */
|
||||
#define GPIO_CRH_MODE12_0 (0x1U << GPIO_CRH_MODE12_Pos) /*!< 0x00010000 */
|
||||
#define GPIO_CRH_MODE12_1 (0x2U << GPIO_CRH_MODE12_Pos) /*!< 0x00020000 */
|
||||
|
||||
#define GPIO_CRH_MODE13_Pos (20U)
|
||||
#define GPIO_CRH_MODE13_Msk (0x3U << GPIO_CRH_MODE13_Pos) /*!< 0x00300000 */
|
||||
#define GPIO_CRH_MODE13 GPIO_CRH_MODE13_Msk /*!< MODE13[1:0] bits (Port x mode bits, pin 13) */
|
||||
#define GPIO_CRH_MODE13_0 (0x1U << GPIO_CRH_MODE13_Pos) /*!< 0x00100000 */
|
||||
#define GPIO_CRH_MODE13_1 (0x2U << GPIO_CRH_MODE13_Pos) /*!< 0x00200000 */
|
||||
|
||||
#define GPIO_CRH_MODE14_Pos (24U)
|
||||
#define GPIO_CRH_MODE14_Msk (0x3U << GPIO_CRH_MODE14_Pos) /*!< 0x03000000 */
|
||||
#define GPIO_CRH_MODE14 GPIO_CRH_MODE14_Msk /*!< MODE14[1:0] bits (Port x mode bits, pin 14) */
|
||||
#define GPIO_CRH_MODE14_0 (0x1U << GPIO_CRH_MODE14_Pos) /*!< 0x01000000 */
|
||||
#define GPIO_CRH_MODE14_1 (0x2U << GPIO_CRH_MODE14_Pos) /*!< 0x02000000 */
|
||||
|
||||
#define GPIO_CRH_MODE15_Pos (28U)
|
||||
#define GPIO_CRH_MODE15_Msk (0x3U << GPIO_CRH_MODE15_Pos) /*!< 0x30000000 */
|
||||
#define GPIO_CRH_MODE15 GPIO_CRH_MODE15_Msk /*!< MODE15[1:0] bits (Port x mode bits, pin 15) */
|
||||
#define GPIO_CRH_MODE15_0 (0x1U << GPIO_CRH_MODE15_Pos) /*!< 0x10000000 */
|
||||
#define GPIO_CRH_MODE15_1 (0x2U << GPIO_CRH_MODE15_Pos) /*!< 0x20000000 */
|
||||
|
||||
#define GPIO_CRH_CNF_Pos (2U)
|
||||
#define GPIO_CRH_CNF_Msk (0x33333333U << GPIO_CRH_CNF_Pos) /*!< 0xCCCCCCCC */
|
||||
#define GPIO_CRH_CNF GPIO_CRH_CNF_Msk /*!< Port x configuration bits */
|
||||
|
||||
#define GPIO_CRH_CNF8_Pos (2U)
|
||||
#define GPIO_CRH_CNF8_Msk (0x3U << GPIO_CRH_CNF8_Pos) /*!< 0x0000000C */
|
||||
#define GPIO_CRH_CNF8 GPIO_CRH_CNF8_Msk /*!< CNF8[1:0] bits (Port x configuration bits, pin 8) */
|
||||
#define GPIO_CRH_CNF8_0 (0x1U << GPIO_CRH_CNF8_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_CRH_CNF8_1 (0x2U << GPIO_CRH_CNF8_Pos) /*!< 0x00000008 */
|
||||
|
||||
#define GPIO_CRH_CNF9_Pos (6U)
|
||||
#define GPIO_CRH_CNF9_Msk (0x3U << GPIO_CRH_CNF9_Pos) /*!< 0x000000C0 */
|
||||
#define GPIO_CRH_CNF9 GPIO_CRH_CNF9_Msk /*!< CNF9[1:0] bits (Port x configuration bits, pin 9) */
|
||||
#define GPIO_CRH_CNF9_0 (0x1U << GPIO_CRH_CNF9_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_CRH_CNF9_1 (0x2U << GPIO_CRH_CNF9_Pos) /*!< 0x00000080 */
|
||||
|
||||
#define GPIO_CRH_CNF10_Pos (10U)
|
||||
#define GPIO_CRH_CNF10_Msk (0x3U << GPIO_CRH_CNF10_Pos) /*!< 0x00000C00 */
|
||||
#define GPIO_CRH_CNF10 GPIO_CRH_CNF10_Msk /*!< CNF10[1:0] bits (Port x configuration bits, pin 10) */
|
||||
#define GPIO_CRH_CNF10_0 (0x1U << GPIO_CRH_CNF10_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_CRH_CNF10_1 (0x2U << GPIO_CRH_CNF10_Pos) /*!< 0x00000800 */
|
||||
|
||||
#define GPIO_CRH_CNF11_Pos (14U)
|
||||
#define GPIO_CRH_CNF11_Msk (0x3U << GPIO_CRH_CNF11_Pos) /*!< 0x0000C000 */
|
||||
#define GPIO_CRH_CNF11 GPIO_CRH_CNF11_Msk /*!< CNF11[1:0] bits (Port x configuration bits, pin 11) */
|
||||
#define GPIO_CRH_CNF11_0 (0x1U << GPIO_CRH_CNF11_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_CRH_CNF11_1 (0x2U << GPIO_CRH_CNF11_Pos) /*!< 0x00008000 */
|
||||
|
||||
#define GPIO_CRH_CNF12_Pos (18U)
|
||||
#define GPIO_CRH_CNF12_Msk (0x3U << GPIO_CRH_CNF12_Pos) /*!< 0x000C0000 */
|
||||
#define GPIO_CRH_CNF12 GPIO_CRH_CNF12_Msk /*!< CNF12[1:0] bits (Port x configuration bits, pin 12) */
|
||||
#define GPIO_CRH_CNF12_0 (0x1U << GPIO_CRH_CNF12_Pos) /*!< 0x00040000 */
|
||||
#define GPIO_CRH_CNF12_1 (0x2U << GPIO_CRH_CNF12_Pos) /*!< 0x00080000 */
|
||||
|
||||
#define GPIO_CRH_CNF13_Pos (22U)
|
||||
#define GPIO_CRH_CNF13_Msk (0x3U << GPIO_CRH_CNF13_Pos) /*!< 0x00C00000 */
|
||||
#define GPIO_CRH_CNF13 GPIO_CRH_CNF13_Msk /*!< CNF13[1:0] bits (Port x configuration bits, pin 13) */
|
||||
#define GPIO_CRH_CNF13_0 (0x1U << GPIO_CRH_CNF13_Pos) /*!< 0x00400000 */
|
||||
#define GPIO_CRH_CNF13_1 (0x2U << GPIO_CRH_CNF13_Pos) /*!< 0x00800000 */
|
||||
|
||||
#define GPIO_CRH_CNF14_Pos (26U)
|
||||
#define GPIO_CRH_CNF14_Msk (0x3U << GPIO_CRH_CNF14_Pos) /*!< 0x0C000000 */
|
||||
#define GPIO_CRH_CNF14 GPIO_CRH_CNF14_Msk /*!< CNF14[1:0] bits (Port x configuration bits, pin 14) */
|
||||
#define GPIO_CRH_CNF14_0 (0x1U << GPIO_CRH_CNF14_Pos) /*!< 0x04000000 */
|
||||
#define GPIO_CRH_CNF14_1 (0x2U << GPIO_CRH_CNF14_Pos) /*!< 0x08000000 */
|
||||
|
||||
#define GPIO_CRH_CNF15_Pos (30U)
|
||||
#define GPIO_CRH_CNF15_Msk (0x3U << GPIO_CRH_CNF15_Pos) /*!< 0xC0000000 */
|
||||
#define GPIO_CRH_CNF15 GPIO_CRH_CNF15_Msk /*!< CNF15[1:0] bits (Port x configuration bits, pin 15) */
|
||||
#define GPIO_CRH_CNF15_0 (0x1U << GPIO_CRH_CNF15_Pos) /*!< 0x40000000 */
|
||||
#define GPIO_CRH_CNF15_1 (0x2U << GPIO_CRH_CNF15_Pos) /*!< 0x80000000 */
|
||||
|
||||
/*!<****************** Bit definition for GPIO_IDR register *******************/
|
||||
#define GPIO_IDR_IDR0_Pos (0U)
|
||||
#define GPIO_IDR_IDR0_Msk (0x1U << GPIO_IDR_IDR0_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_IDR_IDR0 GPIO_IDR_IDR0_Msk /*!< Port input data, bit 0 */
|
||||
#define GPIO_IDR_IDR1_Pos (1U)
|
||||
#define GPIO_IDR_IDR1_Msk (0x1U << GPIO_IDR_IDR1_Pos) /*!< 0x00000002 */
|
||||
#define GPIO_IDR_IDR1 GPIO_IDR_IDR1_Msk /*!< Port input data, bit 1 */
|
||||
#define GPIO_IDR_IDR2_Pos (2U)
|
||||
#define GPIO_IDR_IDR2_Msk (0x1U << GPIO_IDR_IDR2_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_IDR_IDR2 GPIO_IDR_IDR2_Msk /*!< Port input data, bit 2 */
|
||||
#define GPIO_IDR_IDR3_Pos (3U)
|
||||
#define GPIO_IDR_IDR3_Msk (0x1U << GPIO_IDR_IDR3_Pos) /*!< 0x00000008 */
|
||||
#define GPIO_IDR_IDR3 GPIO_IDR_IDR3_Msk /*!< Port input data, bit 3 */
|
||||
#define GPIO_IDR_IDR4_Pos (4U)
|
||||
#define GPIO_IDR_IDR4_Msk (0x1U << GPIO_IDR_IDR4_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_IDR_IDR4 GPIO_IDR_IDR4_Msk /*!< Port input data, bit 4 */
|
||||
#define GPIO_IDR_IDR5_Pos (5U)
|
||||
#define GPIO_IDR_IDR5_Msk (0x1U << GPIO_IDR_IDR5_Pos) /*!< 0x00000020 */
|
||||
#define GPIO_IDR_IDR5 GPIO_IDR_IDR5_Msk /*!< Port input data, bit 5 */
|
||||
#define GPIO_IDR_IDR6_Pos (6U)
|
||||
#define GPIO_IDR_IDR6_Msk (0x1U << GPIO_IDR_IDR6_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_IDR_IDR6 GPIO_IDR_IDR6_Msk /*!< Port input data, bit 6 */
|
||||
#define GPIO_IDR_IDR7_Pos (7U)
|
||||
#define GPIO_IDR_IDR7_Msk (0x1U << GPIO_IDR_IDR7_Pos) /*!< 0x00000080 */
|
||||
#define GPIO_IDR_IDR7 GPIO_IDR_IDR7_Msk /*!< Port input data, bit 7 */
|
||||
#define GPIO_IDR_IDR8_Pos (8U)
|
||||
#define GPIO_IDR_IDR8_Msk (0x1U << GPIO_IDR_IDR8_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_IDR_IDR8 GPIO_IDR_IDR8_Msk /*!< Port input data, bit 8 */
|
||||
#define GPIO_IDR_IDR9_Pos (9U)
|
||||
#define GPIO_IDR_IDR9_Msk (0x1U << GPIO_IDR_IDR9_Pos) /*!< 0x00000200 */
|
||||
#define GPIO_IDR_IDR9 GPIO_IDR_IDR9_Msk /*!< Port input data, bit 9 */
|
||||
#define GPIO_IDR_IDR10_Pos (10U)
|
||||
#define GPIO_IDR_IDR10_Msk (0x1U << GPIO_IDR_IDR10_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_IDR_IDR10 GPIO_IDR_IDR10_Msk /*!< Port input data, bit 10 */
|
||||
#define GPIO_IDR_IDR11_Pos (11U)
|
||||
#define GPIO_IDR_IDR11_Msk (0x1U << GPIO_IDR_IDR11_Pos) /*!< 0x00000800 */
|
||||
#define GPIO_IDR_IDR11 GPIO_IDR_IDR11_Msk /*!< Port input data, bit 11 */
|
||||
#define GPIO_IDR_IDR12_Pos (12U)
|
||||
#define GPIO_IDR_IDR12_Msk (0x1U << GPIO_IDR_IDR12_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_IDR_IDR12 GPIO_IDR_IDR12_Msk /*!< Port input data, bit 12 */
|
||||
#define GPIO_IDR_IDR13_Pos (13U)
|
||||
#define GPIO_IDR_IDR13_Msk (0x1U << GPIO_IDR_IDR13_Pos) /*!< 0x00002000 */
|
||||
#define GPIO_IDR_IDR13 GPIO_IDR_IDR13_Msk /*!< Port input data, bit 13 */
|
||||
#define GPIO_IDR_IDR14_Pos (14U)
|
||||
#define GPIO_IDR_IDR14_Msk (0x1U << GPIO_IDR_IDR14_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_IDR_IDR14 GPIO_IDR_IDR14_Msk /*!< Port input data, bit 14 */
|
||||
#define GPIO_IDR_IDR15_Pos (15U)
|
||||
#define GPIO_IDR_IDR15_Msk (0x1U << GPIO_IDR_IDR15_Pos) /*!< 0x00008000 */
|
||||
#define GPIO_IDR_IDR15 GPIO_IDR_IDR15_Msk /*!< Port input data, bit 15 */
|
||||
|
||||
/******************* Bit definition for GPIO_ODR register *******************/
|
||||
#define GPIO_ODR_ODR0_Pos (0U)
|
||||
#define GPIO_ODR_ODR0_Msk (0x1U << GPIO_ODR_ODR0_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_ODR_ODR0 GPIO_ODR_ODR0_Msk /*!< Port output data, bit 0 */
|
||||
#define GPIO_ODR_ODR1_Pos (1U)
|
||||
#define GPIO_ODR_ODR1_Msk (0x1U << GPIO_ODR_ODR1_Pos) /*!< 0x00000002 */
|
||||
#define GPIO_ODR_ODR1 GPIO_ODR_ODR1_Msk /*!< Port output data, bit 1 */
|
||||
#define GPIO_ODR_ODR2_Pos (2U)
|
||||
#define GPIO_ODR_ODR2_Msk (0x1U << GPIO_ODR_ODR2_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_ODR_ODR2 GPIO_ODR_ODR2_Msk /*!< Port output data, bit 2 */
|
||||
#define GPIO_ODR_ODR3_Pos (3U)
|
||||
#define GPIO_ODR_ODR3_Msk (0x1U << GPIO_ODR_ODR3_Pos) /*!< 0x00000008 */
|
||||
#define GPIO_ODR_ODR3 GPIO_ODR_ODR3_Msk /*!< Port output data, bit 3 */
|
||||
#define GPIO_ODR_ODR4_Pos (4U)
|
||||
#define GPIO_ODR_ODR4_Msk (0x1U << GPIO_ODR_ODR4_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_ODR_ODR4 GPIO_ODR_ODR4_Msk /*!< Port output data, bit 4 */
|
||||
#define GPIO_ODR_ODR5_Pos (5U)
|
||||
#define GPIO_ODR_ODR5_Msk (0x1U << GPIO_ODR_ODR5_Pos) /*!< 0x00000020 */
|
||||
#define GPIO_ODR_ODR5 GPIO_ODR_ODR5_Msk /*!< Port output data, bit 5 */
|
||||
#define GPIO_ODR_ODR6_Pos (6U)
|
||||
#define GPIO_ODR_ODR6_Msk (0x1U << GPIO_ODR_ODR6_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_ODR_ODR6 GPIO_ODR_ODR6_Msk /*!< Port output data, bit 6 */
|
||||
#define GPIO_ODR_ODR7_Pos (7U)
|
||||
#define GPIO_ODR_ODR7_Msk (0x1U << GPIO_ODR_ODR7_Pos) /*!< 0x00000080 */
|
||||
#define GPIO_ODR_ODR7 GPIO_ODR_ODR7_Msk /*!< Port output data, bit 7 */
|
||||
#define GPIO_ODR_ODR8_Pos (8U)
|
||||
#define GPIO_ODR_ODR8_Msk (0x1U << GPIO_ODR_ODR8_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_ODR_ODR8 GPIO_ODR_ODR8_Msk /*!< Port output data, bit 8 */
|
||||
#define GPIO_ODR_ODR9_Pos (9U)
|
||||
#define GPIO_ODR_ODR9_Msk (0x1U << GPIO_ODR_ODR9_Pos) /*!< 0x00000200 */
|
||||
#define GPIO_ODR_ODR9 GPIO_ODR_ODR9_Msk /*!< Port output data, bit 9 */
|
||||
#define GPIO_ODR_ODR10_Pos (10U)
|
||||
#define GPIO_ODR_ODR10_Msk (0x1U << GPIO_ODR_ODR10_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_ODR_ODR10 GPIO_ODR_ODR10_Msk /*!< Port output data, bit 10 */
|
||||
#define GPIO_ODR_ODR11_Pos (11U)
|
||||
#define GPIO_ODR_ODR11_Msk (0x1U << GPIO_ODR_ODR11_Pos) /*!< 0x00000800 */
|
||||
#define GPIO_ODR_ODR11 GPIO_ODR_ODR11_Msk /*!< Port output data, bit 11 */
|
||||
#define GPIO_ODR_ODR12_Pos (12U)
|
||||
#define GPIO_ODR_ODR12_Msk (0x1U << GPIO_ODR_ODR12_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_ODR_ODR12 GPIO_ODR_ODR12_Msk /*!< Port output data, bit 12 */
|
||||
#define GPIO_ODR_ODR13_Pos (13U)
|
||||
#define GPIO_ODR_ODR13_Msk (0x1U << GPIO_ODR_ODR13_Pos) /*!< 0x00002000 */
|
||||
#define GPIO_ODR_ODR13 GPIO_ODR_ODR13_Msk /*!< Port output data, bit 13 */
|
||||
#define GPIO_ODR_ODR14_Pos (14U)
|
||||
#define GPIO_ODR_ODR14_Msk (0x1U << GPIO_ODR_ODR14_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_ODR_ODR14 GPIO_ODR_ODR14_Msk /*!< Port output data, bit 14 */
|
||||
#define GPIO_ODR_ODR15_Pos (15U)
|
||||
#define GPIO_ODR_ODR15_Msk (0x1U << GPIO_ODR_ODR15_Pos) /*!< 0x00008000 */
|
||||
#define GPIO_ODR_ODR15 GPIO_ODR_ODR15_Msk /*!< Port output data, bit 15 */
|
||||
|
||||
/****************** Bit definition for GPIO_BSRR register *******************/
|
||||
#define GPIO_BSRR_BS0_Pos (0U)
|
||||
#define GPIO_BSRR_BS0_Msk (0x1U << GPIO_BSRR_BS0_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_BSRR_BS0 GPIO_BSRR_BS0_Msk /*!< Port x Set bit 0 */
|
||||
#define GPIO_BSRR_BS1_Pos (1U)
|
||||
#define GPIO_BSRR_BS1_Msk (0x1U << GPIO_BSRR_BS1_Pos) /*!< 0x00000002 */
|
||||
#define GPIO_BSRR_BS1 GPIO_BSRR_BS1_Msk /*!< Port x Set bit 1 */
|
||||
#define GPIO_BSRR_BS2_Pos (2U)
|
||||
#define GPIO_BSRR_BS2_Msk (0x1U << GPIO_BSRR_BS2_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_BSRR_BS2 GPIO_BSRR_BS2_Msk /*!< Port x Set bit 2 */
|
||||
#define GPIO_BSRR_BS3_Pos (3U)
|
||||
#define GPIO_BSRR_BS3_Msk (0x1U << GPIO_BSRR_BS3_Pos) /*!< 0x00000008 */
|
||||
#define GPIO_BSRR_BS3 GPIO_BSRR_BS3_Msk /*!< Port x Set bit 3 */
|
||||
#define GPIO_BSRR_BS4_Pos (4U)
|
||||
#define GPIO_BSRR_BS4_Msk (0x1U << GPIO_BSRR_BS4_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_BSRR_BS4 GPIO_BSRR_BS4_Msk /*!< Port x Set bit 4 */
|
||||
#define GPIO_BSRR_BS5_Pos (5U)
|
||||
#define GPIO_BSRR_BS5_Msk (0x1U << GPIO_BSRR_BS5_Pos) /*!< 0x00000020 */
|
||||
#define GPIO_BSRR_BS5 GPIO_BSRR_BS5_Msk /*!< Port x Set bit 5 */
|
||||
#define GPIO_BSRR_BS6_Pos (6U)
|
||||
#define GPIO_BSRR_BS6_Msk (0x1U << GPIO_BSRR_BS6_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_BSRR_BS6 GPIO_BSRR_BS6_Msk /*!< Port x Set bit 6 */
|
||||
#define GPIO_BSRR_BS7_Pos (7U)
|
||||
#define GPIO_BSRR_BS7_Msk (0x1U << GPIO_BSRR_BS7_Pos) /*!< 0x00000080 */
|
||||
#define GPIO_BSRR_BS7 GPIO_BSRR_BS7_Msk /*!< Port x Set bit 7 */
|
||||
#define GPIO_BSRR_BS8_Pos (8U)
|
||||
#define GPIO_BSRR_BS8_Msk (0x1U << GPIO_BSRR_BS8_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_BSRR_BS8 GPIO_BSRR_BS8_Msk /*!< Port x Set bit 8 */
|
||||
#define GPIO_BSRR_BS9_Pos (9U)
|
||||
#define GPIO_BSRR_BS9_Msk (0x1U << GPIO_BSRR_BS9_Pos) /*!< 0x00000200 */
|
||||
#define GPIO_BSRR_BS9 GPIO_BSRR_BS9_Msk /*!< Port x Set bit 9 */
|
||||
#define GPIO_BSRR_BS10_Pos (10U)
|
||||
#define GPIO_BSRR_BS10_Msk (0x1U << GPIO_BSRR_BS10_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_BSRR_BS10 GPIO_BSRR_BS10_Msk /*!< Port x Set bit 10 */
|
||||
#define GPIO_BSRR_BS11_Pos (11U)
|
||||
#define GPIO_BSRR_BS11_Msk (0x1U << GPIO_BSRR_BS11_Pos) /*!< 0x00000800 */
|
||||
#define GPIO_BSRR_BS11 GPIO_BSRR_BS11_Msk /*!< Port x Set bit 11 */
|
||||
#define GPIO_BSRR_BS12_Pos (12U)
|
||||
#define GPIO_BSRR_BS12_Msk (0x1U << GPIO_BSRR_BS12_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_BSRR_BS12 GPIO_BSRR_BS12_Msk /*!< Port x Set bit 12 */
|
||||
#define GPIO_BSRR_BS13_Pos (13U)
|
||||
#define GPIO_BSRR_BS13_Msk (0x1U << GPIO_BSRR_BS13_Pos) /*!< 0x00002000 */
|
||||
#define GPIO_BSRR_BS13 GPIO_BSRR_BS13_Msk /*!< Port x Set bit 13 */
|
||||
#define GPIO_BSRR_BS14_Pos (14U)
|
||||
#define GPIO_BSRR_BS14_Msk (0x1U << GPIO_BSRR_BS14_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_BSRR_BS14 GPIO_BSRR_BS14_Msk /*!< Port x Set bit 14 */
|
||||
#define GPIO_BSRR_BS15_Pos (15U)
|
||||
#define GPIO_BSRR_BS15_Msk (0x1U << GPIO_BSRR_BS15_Pos) /*!< 0x00008000 */
|
||||
#define GPIO_BSRR_BS15 GPIO_BSRR_BS15_Msk /*!< Port x Set bit 15 */
|
||||
|
||||
#define GPIO_BSRR_BR0_Pos (16U)
|
||||
#define GPIO_BSRR_BR0_Msk (0x1U << GPIO_BSRR_BR0_Pos) /*!< 0x00010000 */
|
||||
#define GPIO_BSRR_BR0 GPIO_BSRR_BR0_Msk /*!< Port x Reset bit 0 */
|
||||
#define GPIO_BSRR_BR1_Pos (17U)
|
||||
#define GPIO_BSRR_BR1_Msk (0x1U << GPIO_BSRR_BR1_Pos) /*!< 0x00020000 */
|
||||
#define GPIO_BSRR_BR1 GPIO_BSRR_BR1_Msk /*!< Port x Reset bit 1 */
|
||||
#define GPIO_BSRR_BR2_Pos (18U)
|
||||
#define GPIO_BSRR_BR2_Msk (0x1U << GPIO_BSRR_BR2_Pos) /*!< 0x00040000 */
|
||||
#define GPIO_BSRR_BR2 GPIO_BSRR_BR2_Msk /*!< Port x Reset bit 2 */
|
||||
#define GPIO_BSRR_BR3_Pos (19U)
|
||||
#define GPIO_BSRR_BR3_Msk (0x1U << GPIO_BSRR_BR3_Pos) /*!< 0x00080000 */
|
||||
#define GPIO_BSRR_BR3 GPIO_BSRR_BR3_Msk /*!< Port x Reset bit 3 */
|
||||
#define GPIO_BSRR_BR4_Pos (20U)
|
||||
#define GPIO_BSRR_BR4_Msk (0x1U << GPIO_BSRR_BR4_Pos) /*!< 0x00100000 */
|
||||
#define GPIO_BSRR_BR4 GPIO_BSRR_BR4_Msk /*!< Port x Reset bit 4 */
|
||||
#define GPIO_BSRR_BR5_Pos (21U)
|
||||
#define GPIO_BSRR_BR5_Msk (0x1U << GPIO_BSRR_BR5_Pos) /*!< 0x00200000 */
|
||||
#define GPIO_BSRR_BR5 GPIO_BSRR_BR5_Msk /*!< Port x Reset bit 5 */
|
||||
#define GPIO_BSRR_BR6_Pos (22U)
|
||||
#define GPIO_BSRR_BR6_Msk (0x1U << GPIO_BSRR_BR6_Pos) /*!< 0x00400000 */
|
||||
#define GPIO_BSRR_BR6 GPIO_BSRR_BR6_Msk /*!< Port x Reset bit 6 */
|
||||
#define GPIO_BSRR_BR7_Pos (23U)
|
||||
#define GPIO_BSRR_BR7_Msk (0x1U << GPIO_BSRR_BR7_Pos) /*!< 0x00800000 */
|
||||
#define GPIO_BSRR_BR7 GPIO_BSRR_BR7_Msk /*!< Port x Reset bit 7 */
|
||||
#define GPIO_BSRR_BR8_Pos (24U)
|
||||
#define GPIO_BSRR_BR8_Msk (0x1U << GPIO_BSRR_BR8_Pos) /*!< 0x01000000 */
|
||||
#define GPIO_BSRR_BR8 GPIO_BSRR_BR8_Msk /*!< Port x Reset bit 8 */
|
||||
#define GPIO_BSRR_BR9_Pos (25U)
|
||||
#define GPIO_BSRR_BR9_Msk (0x1U << GPIO_BSRR_BR9_Pos) /*!< 0x02000000 */
|
||||
#define GPIO_BSRR_BR9 GPIO_BSRR_BR9_Msk /*!< Port x Reset bit 9 */
|
||||
#define GPIO_BSRR_BR10_Pos (26U)
|
||||
#define GPIO_BSRR_BR10_Msk (0x1U << GPIO_BSRR_BR10_Pos) /*!< 0x04000000 */
|
||||
#define GPIO_BSRR_BR10 GPIO_BSRR_BR10_Msk /*!< Port x Reset bit 10 */
|
||||
#define GPIO_BSRR_BR11_Pos (27U)
|
||||
#define GPIO_BSRR_BR11_Msk (0x1U << GPIO_BSRR_BR11_Pos) /*!< 0x08000000 */
|
||||
#define GPIO_BSRR_BR11 GPIO_BSRR_BR11_Msk /*!< Port x Reset bit 11 */
|
||||
#define GPIO_BSRR_BR12_Pos (28U)
|
||||
#define GPIO_BSRR_BR12_Msk (0x1U << GPIO_BSRR_BR12_Pos) /*!< 0x10000000 */
|
||||
#define GPIO_BSRR_BR12 GPIO_BSRR_BR12_Msk /*!< Port x Reset bit 12 */
|
||||
#define GPIO_BSRR_BR13_Pos (29U)
|
||||
#define GPIO_BSRR_BR13_Msk (0x1U << GPIO_BSRR_BR13_Pos) /*!< 0x20000000 */
|
||||
#define GPIO_BSRR_BR13 GPIO_BSRR_BR13_Msk /*!< Port x Reset bit 13 */
|
||||
#define GPIO_BSRR_BR14_Pos (30U)
|
||||
#define GPIO_BSRR_BR14_Msk (0x1U << GPIO_BSRR_BR14_Pos) /*!< 0x40000000 */
|
||||
#define GPIO_BSRR_BR14 GPIO_BSRR_BR14_Msk /*!< Port x Reset bit 14 */
|
||||
#define GPIO_BSRR_BR15_Pos (31U)
|
||||
#define GPIO_BSRR_BR15_Msk (0x1U << GPIO_BSRR_BR15_Pos) /*!< 0x80000000 */
|
||||
#define GPIO_BSRR_BR15 GPIO_BSRR_BR15_Msk /*!< Port x Reset bit 15 */
|
||||
|
||||
/******************* Bit definition for GPIO_BRR register *******************/
|
||||
#define GPIO_BRR_BR0_Pos (0U)
|
||||
#define GPIO_BRR_BR0_Msk (0x1U << GPIO_BRR_BR0_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_BRR_BR0 GPIO_BRR_BR0_Msk /*!< Port x Reset bit 0 */
|
||||
#define GPIO_BRR_BR1_Pos (1U)
|
||||
#define GPIO_BRR_BR1_Msk (0x1U << GPIO_BRR_BR1_Pos) /*!< 0x00000002 */
|
||||
#define GPIO_BRR_BR1 GPIO_BRR_BR1_Msk /*!< Port x Reset bit 1 */
|
||||
#define GPIO_BRR_BR2_Pos (2U)
|
||||
#define GPIO_BRR_BR2_Msk (0x1U << GPIO_BRR_BR2_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_BRR_BR2 GPIO_BRR_BR2_Msk /*!< Port x Reset bit 2 */
|
||||
#define GPIO_BRR_BR3_Pos (3U)
|
||||
#define GPIO_BRR_BR3_Msk (0x1U << GPIO_BRR_BR3_Pos) /*!< 0x00000008 */
|
||||
#define GPIO_BRR_BR3 GPIO_BRR_BR3_Msk /*!< Port x Reset bit 3 */
|
||||
#define GPIO_BRR_BR4_Pos (4U)
|
||||
#define GPIO_BRR_BR4_Msk (0x1U << GPIO_BRR_BR4_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_BRR_BR4 GPIO_BRR_BR4_Msk /*!< Port x Reset bit 4 */
|
||||
#define GPIO_BRR_BR5_Pos (5U)
|
||||
#define GPIO_BRR_BR5_Msk (0x1U << GPIO_BRR_BR5_Pos) /*!< 0x00000020 */
|
||||
#define GPIO_BRR_BR5 GPIO_BRR_BR5_Msk /*!< Port x Reset bit 5 */
|
||||
#define GPIO_BRR_BR6_Pos (6U)
|
||||
#define GPIO_BRR_BR6_Msk (0x1U << GPIO_BRR_BR6_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_BRR_BR6 GPIO_BRR_BR6_Msk /*!< Port x Reset bit 6 */
|
||||
#define GPIO_BRR_BR7_Pos (7U)
|
||||
#define GPIO_BRR_BR7_Msk (0x1U << GPIO_BRR_BR7_Pos) /*!< 0x00000080 */
|
||||
#define GPIO_BRR_BR7 GPIO_BRR_BR7_Msk /*!< Port x Reset bit 7 */
|
||||
#define GPIO_BRR_BR8_Pos (8U)
|
||||
#define GPIO_BRR_BR8_Msk (0x1U << GPIO_BRR_BR8_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_BRR_BR8 GPIO_BRR_BR8_Msk /*!< Port x Reset bit 8 */
|
||||
#define GPIO_BRR_BR9_Pos (9U)
|
||||
#define GPIO_BRR_BR9_Msk (0x1U << GPIO_BRR_BR9_Pos) /*!< 0x00000200 */
|
||||
#define GPIO_BRR_BR9 GPIO_BRR_BR9_Msk /*!< Port x Reset bit 9 */
|
||||
#define GPIO_BRR_BR10_Pos (10U)
|
||||
#define GPIO_BRR_BR10_Msk (0x1U << GPIO_BRR_BR10_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_BRR_BR10 GPIO_BRR_BR10_Msk /*!< Port x Reset bit 10 */
|
||||
#define GPIO_BRR_BR11_Pos (11U)
|
||||
#define GPIO_BRR_BR11_Msk (0x1U << GPIO_BRR_BR11_Pos) /*!< 0x00000800 */
|
||||
#define GPIO_BRR_BR11 GPIO_BRR_BR11_Msk /*!< Port x Reset bit 11 */
|
||||
#define GPIO_BRR_BR12_Pos (12U)
|
||||
#define GPIO_BRR_BR12_Msk (0x1U << GPIO_BRR_BR12_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_BRR_BR12 GPIO_BRR_BR12_Msk /*!< Port x Reset bit 12 */
|
||||
#define GPIO_BRR_BR13_Pos (13U)
|
||||
#define GPIO_BRR_BR13_Msk (0x1U << GPIO_BRR_BR13_Pos) /*!< 0x00002000 */
|
||||
#define GPIO_BRR_BR13 GPIO_BRR_BR13_Msk /*!< Port x Reset bit 13 */
|
||||
#define GPIO_BRR_BR14_Pos (14U)
|
||||
#define GPIO_BRR_BR14_Msk (0x1U << GPIO_BRR_BR14_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_BRR_BR14 GPIO_BRR_BR14_Msk /*!< Port x Reset bit 14 */
|
||||
#define GPIO_BRR_BR15_Pos (15U)
|
||||
#define GPIO_BRR_BR15_Msk (0x1U << GPIO_BRR_BR15_Pos) /*!< 0x00008000 */
|
||||
#define GPIO_BRR_BR15 GPIO_BRR_BR15_Msk /*!< Port x Reset bit 15 */
|
||||
|
||||
/****************** Bit definition for GPIO_LCKR register *******************/
|
||||
#define GPIO_LCKR_LCK0_Pos (0U)
|
||||
#define GPIO_LCKR_LCK0_Msk (0x1U << GPIO_LCKR_LCK0_Pos) /*!< 0x00000001 */
|
||||
#define GPIO_LCKR_LCK0 GPIO_LCKR_LCK0_Msk /*!< Port x Lock bit 0 */
|
||||
#define GPIO_LCKR_LCK1_Pos (1U)
|
||||
#define GPIO_LCKR_LCK1_Msk (0x1U << GPIO_LCKR_LCK1_Pos) /*!< 0x00000002 */
|
||||
#define GPIO_LCKR_LCK1 GPIO_LCKR_LCK1_Msk /*!< Port x Lock bit 1 */
|
||||
#define GPIO_LCKR_LCK2_Pos (2U)
|
||||
#define GPIO_LCKR_LCK2_Msk (0x1U << GPIO_LCKR_LCK2_Pos) /*!< 0x00000004 */
|
||||
#define GPIO_LCKR_LCK2 GPIO_LCKR_LCK2_Msk /*!< Port x Lock bit 2 */
|
||||
#define GPIO_LCKR_LCK3_Pos (3U)
|
||||
#define GPIO_LCKR_LCK3_Msk (0x1U << GPIO_LCKR_LCK3_Pos) /*!< 0x00000008 */
|
||||
#define GPIO_LCKR_LCK3 GPIO_LCKR_LCK3_Msk /*!< Port x Lock bit 3 */
|
||||
#define GPIO_LCKR_LCK4_Pos (4U)
|
||||
#define GPIO_LCKR_LCK4_Msk (0x1U << GPIO_LCKR_LCK4_Pos) /*!< 0x00000010 */
|
||||
#define GPIO_LCKR_LCK4 GPIO_LCKR_LCK4_Msk /*!< Port x Lock bit 4 */
|
||||
#define GPIO_LCKR_LCK5_Pos (5U)
|
||||
#define GPIO_LCKR_LCK5_Msk (0x1U << GPIO_LCKR_LCK5_Pos) /*!< 0x00000020 */
|
||||
#define GPIO_LCKR_LCK5 GPIO_LCKR_LCK5_Msk /*!< Port x Lock bit 5 */
|
||||
#define GPIO_LCKR_LCK6_Pos (6U)
|
||||
#define GPIO_LCKR_LCK6_Msk (0x1U << GPIO_LCKR_LCK6_Pos) /*!< 0x00000040 */
|
||||
#define GPIO_LCKR_LCK6 GPIO_LCKR_LCK6_Msk /*!< Port x Lock bit 6 */
|
||||
#define GPIO_LCKR_LCK7_Pos (7U)
|
||||
#define GPIO_LCKR_LCK7_Msk (0x1U << GPIO_LCKR_LCK7_Pos) /*!< 0x00000080 */
|
||||
#define GPIO_LCKR_LCK7 GPIO_LCKR_LCK7_Msk /*!< Port x Lock bit 7 */
|
||||
#define GPIO_LCKR_LCK8_Pos (8U)
|
||||
#define GPIO_LCKR_LCK8_Msk (0x1U << GPIO_LCKR_LCK8_Pos) /*!< 0x00000100 */
|
||||
#define GPIO_LCKR_LCK8 GPIO_LCKR_LCK8_Msk /*!< Port x Lock bit 8 */
|
||||
#define GPIO_LCKR_LCK9_Pos (9U)
|
||||
#define GPIO_LCKR_LCK9_Msk (0x1U << GPIO_LCKR_LCK9_Pos) /*!< 0x00000200 */
|
||||
#define GPIO_LCKR_LCK9 GPIO_LCKR_LCK9_Msk /*!< Port x Lock bit 9 */
|
||||
#define GPIO_LCKR_LCK10_Pos (10U)
|
||||
#define GPIO_LCKR_LCK10_Msk (0x1U << GPIO_LCKR_LCK10_Pos) /*!< 0x00000400 */
|
||||
#define GPIO_LCKR_LCK10 GPIO_LCKR_LCK10_Msk /*!< Port x Lock bit 10 */
|
||||
#define GPIO_LCKR_LCK11_Pos (11U)
|
||||
#define GPIO_LCKR_LCK11_Msk (0x1U << GPIO_LCKR_LCK11_Pos) /*!< 0x00000800 */
|
||||
#define GPIO_LCKR_LCK11 GPIO_LCKR_LCK11_Msk /*!< Port x Lock bit 11 */
|
||||
#define GPIO_LCKR_LCK12_Pos (12U)
|
||||
#define GPIO_LCKR_LCK12_Msk (0x1U << GPIO_LCKR_LCK12_Pos) /*!< 0x00001000 */
|
||||
#define GPIO_LCKR_LCK12 GPIO_LCKR_LCK12_Msk /*!< Port x Lock bit 12 */
|
||||
#define GPIO_LCKR_LCK13_Pos (13U)
|
||||
#define GPIO_LCKR_LCK13_Msk (0x1U << GPIO_LCKR_LCK13_Pos) /*!< 0x00002000 */
|
||||
#define GPIO_LCKR_LCK13 GPIO_LCKR_LCK13_Msk /*!< Port x Lock bit 13 */
|
||||
#define GPIO_LCKR_LCK14_Pos (14U)
|
||||
#define GPIO_LCKR_LCK14_Msk (0x1U << GPIO_LCKR_LCK14_Pos) /*!< 0x00004000 */
|
||||
#define GPIO_LCKR_LCK14 GPIO_LCKR_LCK14_Msk /*!< Port x Lock bit 14 */
|
||||
#define GPIO_LCKR_LCK15_Pos (15U)
|
||||
#define GPIO_LCKR_LCK15_Msk (0x1U << GPIO_LCKR_LCK15_Pos) /*!< 0x00008000 */
|
||||
#define GPIO_LCKR_LCK15 GPIO_LCKR_LCK15_Msk /*!< Port x Lock bit 15 */
|
||||
#define GPIO_LCKR_LCKK_Pos (16U)
|
||||
#define GPIO_LCKR_LCKK_Msk (0x1U << GPIO_LCKR_LCKK_Pos) /*!< 0x00010000 */
|
||||
#define GPIO_LCKR_LCKK GPIO_LCKR_LCKK_Msk /*!< Lock key */
|
||||
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/****************** Bit definition for AFIO_MAPR2 register ******************/
|
||||
|
||||
|
||||
#define AFIO_MAPR2_FSMC_NADV_REMAP_Pos (10U)
|
||||
#define AFIO_MAPR2_FSMC_NADV_REMAP_Msk (0x1U << AFIO_MAPR2_FSMC_NADV_REMAP_Pos) /*!< 0x00000400 */
|
||||
#define AFIO_MAPR2_FSMC_NADV_REMAP AFIO_MAPR2_FSMC_NADV_REMAP_Msk /*!< FSMC NADV remapping */
|
||||
|
||||
/* Debug Exception and Monitor Control Register Definitions */
|
||||
#define CoreDebug_DEMCR_TRCENA_Pos 24U /*!< CoreDebug DEMCR: TRCENA Position */
|
||||
#define CoreDebug_DEMCR_TRCENA_Msk (1UL << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */
|
||||
|
||||
#define DWT_CTRL_CYCCNTENA_Pos 0U /*!< DWT CTRL: CYCCNTENA Position */
|
||||
#define DWT_CTRL_CYCCNTENA_Msk (0x1UL /*<< DWT_CTRL_CYCCNTENA_Pos*/) /*!< DWT CTRL: CYCCNTENA Mask */
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user