Committer:
ganlikun
Date:
Mon Oct 24 15:19:39 2022 +0000
Revision:
0:06036f8bee2d
11

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ganlikun 0:06036f8bee2d 1 /* mbed Microcontroller Library
ganlikun 0:06036f8bee2d 2 *******************************************************************************
ganlikun 0:06036f8bee2d 3 * Copyright (c) 2016, STMicroelectronics
ganlikun 0:06036f8bee2d 4 * All rights reserved.
ganlikun 0:06036f8bee2d 5 *
ganlikun 0:06036f8bee2d 6 * Redistribution and use in source and binary forms, with or without
ganlikun 0:06036f8bee2d 7 * modification, are permitted provided that the following conditions are met:
ganlikun 0:06036f8bee2d 8 *
ganlikun 0:06036f8bee2d 9 * 1. Redistributions of source code must retain the above copyright notice,
ganlikun 0:06036f8bee2d 10 * this list of conditions and the following disclaimer.
ganlikun 0:06036f8bee2d 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
ganlikun 0:06036f8bee2d 12 * this list of conditions and the following disclaimer in the documentation
ganlikun 0:06036f8bee2d 13 * and/or other materials provided with the distribution.
ganlikun 0:06036f8bee2d 14 * 3. Neither the name of STMicroelectronics nor the names of its contributors
ganlikun 0:06036f8bee2d 15 * may be used to endorse or promote products derived from this software
ganlikun 0:06036f8bee2d 16 * without specific prior written permission.
ganlikun 0:06036f8bee2d 17 *
ganlikun 0:06036f8bee2d 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
ganlikun 0:06036f8bee2d 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
ganlikun 0:06036f8bee2d 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
ganlikun 0:06036f8bee2d 21 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
ganlikun 0:06036f8bee2d 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
ganlikun 0:06036f8bee2d 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
ganlikun 0:06036f8bee2d 24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
ganlikun 0:06036f8bee2d 25 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
ganlikun 0:06036f8bee2d 26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
ganlikun 0:06036f8bee2d 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ganlikun 0:06036f8bee2d 28 *******************************************************************************
ganlikun 0:06036f8bee2d 29 */
ganlikun 0:06036f8bee2d 30 #ifndef MBED_COMMON_OBJECTS_H
ganlikun 0:06036f8bee2d 31 #define MBED_COMMON_OBJECTS_H
ganlikun 0:06036f8bee2d 32
ganlikun 0:06036f8bee2d 33 #include "cmsis.h"
ganlikun 0:06036f8bee2d 34 #include "PortNames.h"
ganlikun 0:06036f8bee2d 35 #include "PeripheralNames.h"
ganlikun 0:06036f8bee2d 36 #include "PinNames.h"
ganlikun 0:06036f8bee2d 37
ganlikun 0:06036f8bee2d 38 #ifdef __cplusplus
ganlikun 0:06036f8bee2d 39 extern "C" {
ganlikun 0:06036f8bee2d 40 #endif
ganlikun 0:06036f8bee2d 41
ganlikun 0:06036f8bee2d 42 struct pwmout_s {
ganlikun 0:06036f8bee2d 43 PWMName pwm;
ganlikun 0:06036f8bee2d 44 PinName pin;
ganlikun 0:06036f8bee2d 45 uint32_t prescaler;
ganlikun 0:06036f8bee2d 46 uint32_t period;
ganlikun 0:06036f8bee2d 47 uint32_t pulse;
ganlikun 0:06036f8bee2d 48 uint8_t channel;
ganlikun 0:06036f8bee2d 49 uint8_t inverted;
ganlikun 0:06036f8bee2d 50 };
ganlikun 0:06036f8bee2d 51
ganlikun 0:06036f8bee2d 52 struct serial_s {
ganlikun 0:06036f8bee2d 53 UARTName uart;
ganlikun 0:06036f8bee2d 54 int index;
ganlikun 0:06036f8bee2d 55 uint32_t baudrate;
ganlikun 0:06036f8bee2d 56 uint32_t databits;
ganlikun 0:06036f8bee2d 57 uint32_t stopbits;
ganlikun 0:06036f8bee2d 58 uint32_t parity;
ganlikun 0:06036f8bee2d 59 PinName pin_tx;
ganlikun 0:06036f8bee2d 60 PinName pin_rx;
ganlikun 0:06036f8bee2d 61 #if DEVICE_SERIAL_ASYNCH
ganlikun 0:06036f8bee2d 62 uint32_t events;
ganlikun 0:06036f8bee2d 63 #endif
ganlikun 0:06036f8bee2d 64 #if DEVICE_SERIAL_FC
ganlikun 0:06036f8bee2d 65 uint32_t hw_flow_ctl;
ganlikun 0:06036f8bee2d 66 PinName pin_rts;
ganlikun 0:06036f8bee2d 67 PinName pin_cts;
ganlikun 0:06036f8bee2d 68 #endif
ganlikun 0:06036f8bee2d 69 };
ganlikun 0:06036f8bee2d 70
ganlikun 0:06036f8bee2d 71 struct spi_s {
ganlikun 0:06036f8bee2d 72 SPI_HandleTypeDef handle;
ganlikun 0:06036f8bee2d 73 IRQn_Type spiIRQ;
ganlikun 0:06036f8bee2d 74 SPIName spi;
ganlikun 0:06036f8bee2d 75 PinName pin_miso;
ganlikun 0:06036f8bee2d 76 PinName pin_mosi;
ganlikun 0:06036f8bee2d 77 PinName pin_sclk;
ganlikun 0:06036f8bee2d 78 PinName pin_ssel;
ganlikun 0:06036f8bee2d 79 #ifdef DEVICE_SPI_ASYNCH
ganlikun 0:06036f8bee2d 80 uint32_t event;
ganlikun 0:06036f8bee2d 81 uint8_t transfer_type;
ganlikun 0:06036f8bee2d 82 #endif
ganlikun 0:06036f8bee2d 83 };
ganlikun 0:06036f8bee2d 84
ganlikun 0:06036f8bee2d 85 struct i2c_s {
ganlikun 0:06036f8bee2d 86 /* The 1st 2 members I2CName i2c
ganlikun 0:06036f8bee2d 87 * and I2C_HandleTypeDef handle should
ganlikun 0:06036f8bee2d 88 * be kept as the first members of this struct
ganlikun 0:06036f8bee2d 89 * to have get_i2c_obj() function work as expected
ganlikun 0:06036f8bee2d 90 */
ganlikun 0:06036f8bee2d 91 I2CName i2c;
ganlikun 0:06036f8bee2d 92 I2C_HandleTypeDef handle;
ganlikun 0:06036f8bee2d 93 uint8_t index;
ganlikun 0:06036f8bee2d 94 int hz;
ganlikun 0:06036f8bee2d 95 PinName sda;
ganlikun 0:06036f8bee2d 96 PinName scl;
ganlikun 0:06036f8bee2d 97 IRQn_Type event_i2cIRQ;
ganlikun 0:06036f8bee2d 98 IRQn_Type error_i2cIRQ;
ganlikun 0:06036f8bee2d 99 uint8_t XferOperation;
ganlikun 0:06036f8bee2d 100 volatile uint8_t event;
ganlikun 0:06036f8bee2d 101 #if DEVICE_I2CSLAVE
ganlikun 0:06036f8bee2d 102 uint8_t slave;
ganlikun 0:06036f8bee2d 103 volatile uint8_t pending_slave_tx_master_rx;
ganlikun 0:06036f8bee2d 104 volatile uint8_t pending_slave_rx_maxter_tx;
ganlikun 0:06036f8bee2d 105 #endif
ganlikun 0:06036f8bee2d 106 #if DEVICE_I2C_ASYNCH
ganlikun 0:06036f8bee2d 107 uint32_t address;
ganlikun 0:06036f8bee2d 108 uint8_t stop;
ganlikun 0:06036f8bee2d 109 uint8_t available_events;
ganlikun 0:06036f8bee2d 110 #endif
ganlikun 0:06036f8bee2d 111 };
ganlikun 0:06036f8bee2d 112
ganlikun 0:06036f8bee2d 113 #if DEVICE_FLASH
ganlikun 0:06036f8bee2d 114 struct flash_s {
ganlikun 0:06036f8bee2d 115 uint32_t dummy;
ganlikun 0:06036f8bee2d 116 };
ganlikun 0:06036f8bee2d 117 #endif
ganlikun 0:06036f8bee2d 118
ganlikun 0:06036f8bee2d 119 struct analogin_s {
ganlikun 0:06036f8bee2d 120 ADC_HandleTypeDef handle;
ganlikun 0:06036f8bee2d 121 PinName pin;
ganlikun 0:06036f8bee2d 122 uint8_t channel;
ganlikun 0:06036f8bee2d 123 };
ganlikun 0:06036f8bee2d 124
ganlikun 0:06036f8bee2d 125 #define GPIO_IP_WITHOUT_BRR
ganlikun 0:06036f8bee2d 126 #include "gpio_object.h"
ganlikun 0:06036f8bee2d 127
ganlikun 0:06036f8bee2d 128 #if DEVICE_ANALOGOUT
ganlikun 0:06036f8bee2d 129 struct dac_s {
ganlikun 0:06036f8bee2d 130 DACName dac;
ganlikun 0:06036f8bee2d 131 uint32_t channel;
ganlikun 0:06036f8bee2d 132 DAC_HandleTypeDef handle;
ganlikun 0:06036f8bee2d 133 };
ganlikun 0:06036f8bee2d 134 #endif
ganlikun 0:06036f8bee2d 135
ganlikun 0:06036f8bee2d 136 #if DEVICE_CAN
ganlikun 0:06036f8bee2d 137 struct can_s {
ganlikun 0:06036f8bee2d 138 CAN_HandleTypeDef CanHandle;
ganlikun 0:06036f8bee2d 139 int index;
ganlikun 0:06036f8bee2d 140 int hz;
ganlikun 0:06036f8bee2d 141 };
ganlikun 0:06036f8bee2d 142 #endif
ganlikun 0:06036f8bee2d 143
ganlikun 0:06036f8bee2d 144 #ifdef __cplusplus
ganlikun 0:06036f8bee2d 145 }
ganlikun 0:06036f8bee2d 146 #endif
ganlikun 0:06036f8bee2d 147
ganlikun 0:06036f8bee2d 148 #endif
ganlikun 0:06036f8bee2d 149
ganlikun 0:06036f8bee2d 150