mega2560的库,移植到STM32-Arduino中文社区 - Powered by Discuz! Archiver

xo37 发表于 2019-1-14 23:26

mega2560的库,移植到STM32


// Define PORT
#define PORT_DRDY PORTL // Pin 49 on Arduino Mega
#define PIN_DRDY PINL
#define PINDEX_DRDY PL0
#define DDR_DRDY DDRL

#define PORT_CS PORTB // Pin 53 on Arduino Mega
#define PIN_CS PINB
#define PINDEX_CS PB0
#define DDR_CS DDRB

#define PORT_RESET PORTL // PIN 48 on Arduino Mega
#define PIN_REST PINL
#define PINDEX_RESET PL1
#define DDR_RESET DDRL

这库引脚的定义,有大神能帮忙给修改下吗?STM32F103CBT6,或者解读下,是啥意思。

t3486784401 发表于 2019-1-15 01:10

以中间的 PB0 为例:

#define PORT_CS PORTB    // D53 所在端口的输出寄存器(8位)
#define PIN_CS PINB      // D53 所在端口的输入寄存器(8位)
#define PINDEX_CS PB0    // D53 具体位于端口中的位置(0~7)
#define DDR_CS DDRB      // D53 所在端口的方向寄存器(8位)


你这里 D48/D49/D53 是 AVR 的IO结构,直接移植 F103 的话结构都不通用。
建议这样移植:
pinMode(D48, OUTPUT)=> pinMode(PB10, OUTPUT)
digitalRead/Write => digitalRead/Write

如果原来的代码里直接访问 PORT_CS PORTB,那恭喜你至少得搞懂 AVR IO结构,
否则你这点代码根本说不清

xo37 发表于 2019-1-15 05:13

t3486784401 发表于 2019-1-15 01:10
以中间的 PB0 为例:




谢谢 指正,还以为只是简单的几行呢,谢谢

xo37 发表于 2019-1-15 06:27

t3486784401 发表于 2019-1-15 01:10
以中间的 PB0 为例:




是一个第三方的库,原先是为mega 2560写的——且只兼容mega 2560,看了下库里的源码,只有这里牵扯到里引脚,就是SPI读数据
页: [1]
查看完整版本: mega2560的库,移植到STM32