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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5103|回复: 3

mega2560的库,移植到STM32

[复制链接]
发表于 2019-1-14 23:26 | 显示全部楼层 |阅读模式
[mw_shl_code=cpp,true]
// 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
[/mw_shl_code]
这库引脚的定义,有大神能帮忙给修改下吗?STM32F103CBT6,或者解读下,是啥意思。

发表于 2019-1-15 01:10 | 显示全部楼层
以中间的 PB0 为例:

  1. #define PORT_CS PORTB    // D53 所在端口的输出寄存器(8位)
  2. #define PIN_CS PINB      // D53 所在端口的输入寄存器(8位)
  3. #define PINDEX_CS PB0    // D53 具体位于端口中的位置(0~7)
  4. #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结构,
否则你这点代码根本说不清
 楼主| 发表于 2019-1-15 05:13 | 显示全部楼层
t3486784401 发表于 2019-1-15 01:10
以中间的 PB0 为例:

谢谢 指正,还以为只是简单的几行呢,谢谢
 楼主| 发表于 2019-1-15 06:27 | 显示全部楼层
t3486784401 发表于 2019-1-15 01:10
以中间的 PB0 为例:

是一个第三方的库,原先是为mega 2560写的——且只兼容mega 2560,看了下库里的源码,只有这里牵扯到里引脚,就是SPI读数据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:39 , Processed in 0.098896 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表