庆科社区
登录
直播中
agdhun
9年用户
470经验值
擅长:可编程逻辑 嵌入式技术 EDA/IC设计 处理器/DSP 接口/总线/驱动 RF/无线
私信
关注
【MiCOKit试用体验】+ MiCO 外设资源定义与映射实现
本帖最后由 agdhun 于 2015-9-28 15:51 编辑
本文摘自mico.io
MiCO 系统将不同MCU的外设硬件资源,如GPIO,ADC,I2C等做了统一定义
MiCO外设资源的 结构体定义在: Board/板级型号/platform.h中
MiCO外设资源对应MCU资源的映射实现在: Board/板级型号/platform.c中
对应的资源定义和映射内容,以MiCO GPIO和MiCO I2C为例说明,如下:
(说明:其它资源定义与映射关系,请参考MiCO SDK中的Board/板级型号/platform.h和platform.c内容)
2.1 MiCO GPIO
MiCO GPIO结构体定义,举例如下:
typedef enum
{
MICO_SYS_LED,
MICO_RF_LED,
BOOT_SEL,
MFG_SEL,
EasyLink_BUTTON,
STDIO_UART_RX,
STDIO_UART_TX,
FLASH_PIN_SPI_CS,
FLASH_PIN_SPI_CLK,
FLASH_PIN_SPI_MOSI,
FLASH_PIN_SPI_MISO,
MICO_GPIO_2,
MICO_GPIO_8,
MICO_GPIO_9,
MICO_GPIO_12,
MICO_GPIO_14,
MICO_GPIO_16,
MICO_GPIO_17,
MICO_GPIO_18,
MICO_GPIO_19,
MICO_GPIO_27,
MICO_GPIO_29,
MICO_GPIO_30,
MICO_GPIO_31,
MICO_GPIO_33,
MICO_GPIO_34,
MICO_GPIO_35,
MICO_GPIO_36,
MICO_GPIO_37,
MICO_GPIO_38,
MICO_GPIO_MAX, /* Denotes the total number of GPIO port aliases. Not a valid GPIO alias */
MICO_GPIO_NONE,
} mico_gpio_t;
不同MCU 的 GPIO管脚映射到 MiCO GPIO,举例如下:
const platform_gpio_t platform_gpio_pins[] =
{
/* Common GPIOs for internal use */
[MICO_SYS_LED] = { GPIOB, 13 },
[MICO_RF_LED] = { GPIOB, 8 },
[BOOT_SEL] = { GPIOB, 1 },
[MFG_SEL] = { GPIOB, 0 },
[EasyLink_BUTTON] = { GPIOA, 1 },
[STDIO_UART_RX] = { GPIOA, 3 },
[STDIO_UART_TX] = { GPIOA, 2 },
[FLASH_PIN_SPI_CS ] = { GPIOA, 15 },
[FLASH_PIN_SPI_CLK ] = { GPIOB, 3 },
[FLASH_PIN_SPI_MOSI] = { GPIOA, 7 },
[FLASH_PIN_SPI_MISO] = { GPIOB, 4 },
/* GPIOs for external use */
[MICO_GPIO_2] = { GPIOB, 2 },
[MICO_GPIO_8] = { GPIOA , 2 },
[MICO_GPIO_9] = { GPIOA, 1 },
[MICO_GPIO_12] = { GPIOA, 3 },
[MICO_GPIO_14] = { GPIOA, 0 },
[MICO_GPIO_16] = { GPIOC, 13 },
[MICO_GPIO_17] = { GPIOB, 10 },
[MICO_GPIO_18] = { GPIOB, 9 },
[MICO_GPIO_19] = { GPIOB, 12 },
[MICO_GPIO_27] = { GPIOA, 12 },
[MICO_GPIO_29] = { GPIOA, 10 },
[MICO_GPIO_30] = { GPIOB, 6 },
[MICO_GPIO_31] = { GPIOB, 8 },
[MICO_GPIO_33] = { GPIOB, 13 },
[MICO_GPIO_34] = { GPIOA, 5 },
[MICO_GPIO_35] = { GPIOA, 11 },
[MICO_GPIO_36] = { GPIOB, 1 },
[MICO_GPIO_37] = { GPIOB, 0 },
[MICO_GPIO_38] = { GPIOA, 4 },
};
2.2 MiCO I2C
MiCO I2C结构体定义
typedef enum
{
MICO_I2C_1,
MICO_I2C_MAX, /* Denotes the total number of I2C port aliases. Not a valid I2C alias */
MICO_I2C_NONE,
} mico_i2c_t;
将不同MCU的 I2C 映射到 MiCO I2C
const platform_i2c_t platform_i2c_peripherals[] =
{
[MICO_I2C_1] =
{
.port = I2C1,
.pin_scl = &platform_gpio_pins[MICO_GPIO_17],
.pin_sda = &platform_gpio_pins[MICO_GPIO_18],
.peripheral_clock_reg = RCC_APB1Periph_I2C1,
.tx_dma = DMA1,
.tx_dma_peripheral_clock = RCC_AHB1Periph_DMA1,
.tx_dma_stream = DMA1_Stream7,
.rx_dma_stream = DMA1_Stream5,
.tx_dma_stream_id = 7,
.rx_dma_stream_id = 5,
.tx_dma_channel = DMA_Channel_1,
.rx_dma_channel = DMA_Channel_1,
.gpio_af = GPIO_AF_I2C1
},
};
回帖
(2)
mameng
2015-9-15 17:58:49
重点写一写实际操作
重点写一写实际操作
举报
chengjia213
2015-9-16 22:42:17
搞不懂```太乱了````````````````
搞不懂```太乱了````````````````
举报
更多回帖
rotate(-90deg);
回复
相关帖子
【
MiCOKit
申请】
MiCOKit
试用
+
MICO
操作体统体验
1780
【
MiCOKit
试用
体验】+
MICO
晒照
2137
【
MiCOKit
试用
体验】RCSN--【
MiCO
分享贴】
MiCOKit
-3288开箱分享
4073
【
MiCOKit
试用
体验】+ 如何扩展
MICO
中的cli命令
3114
【
MiCOKit
试用
体验】关于
MiCO
3165扩展板上
外设
使用的几个问题
3640
【
MiCOKit
试用
体验】庆科
MiCOKit
外设
篇(2)Key按键
14856
【
MiCOKit
试用
体验】庆科
MiCOKit
外设
篇(3)OLED显示
4469
【
MiCOKit
试用
体验】+
MICO
SDK开发-SDK下载和介绍
5907
【
MiCOKit
试用
体验】+第一个
MiCO
应用程序
3440
【
MiCOKit
试用
体验】关于
MiCo
3165更新RF的问题
4359
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分