您尚未登录。

楼主 #1 2020-09-02 16:46:11

风吹我已散
会员
注册时间: 2020-09-02
已发帖子: 9
积分: 4

stm32f103vct6使用dm9000时地址偏移问题(正点原子例程改)

最近要做一个,实现数据采集,使用网线并通过TCP通信将数据传输到服务器的项目
之前没有做过网络方面的项目,为了缩短开发流程,就学习了正点原子的网络教程

正点原子战舰V3开发板,使用的是STM32F103ZET6+DM9000
但是这个F103ZET6芯片引脚过多,并且价格稍贵

为了保证在不过多修改程序的前提下,stm32f103vct6就非常不错

但在画电路的时候发现
战舰V3开发板中,DM9000的几个引脚与STM32F103ZET6连接如下:

DM9000 --->   STM32F103ZET6
CMD    --->  PF14-FSMC_A7
CS     --->  PG9-FSMC_NE2
INT    --->  PG6-DM9000_INT

这几个引脚在stm32f103vct6中并没有,需要更改电路
重新分配引脚......

首先是DM9000的INT
查看程序发现dm9000.h中
INT宏
这个可以随意分配IO: INT  --->  PD2-DM9000_INT,并更改程序
INT宏

之后是DM9000的CS
没有FSMC_NE2,那就用FSMC_NE1
(不知道FSMC_NE1和FSMC_NE2是什么意思,有什么区别的可以去学习一下FSMC,这里只给出更改结果)
但是FSMC_NE1的PD7引脚,在原程序中,连接的是DM9000的RST
所以这两个引脚都需要更改,在正点原子项目dm9000.h中
INT宏
dm9000.c中
INT宏

更改为
INT宏
INT宏

最后一个DM9000的CMD
仔细对照IO表后,发现stm32f103vct6的FSMC中也没有FSMC_A7
我就直接使用PD11-FSMC_A16
(不要问我为什么用FSMC_A16,仅仅只是随便找了一个,stm32f103vct6中有FSMC_A16~FSMC_A22,都可以使用,
     不过程序里面会有不同,之后会说明)
找到程序dm9000.h中
INT宏
我们需要改的就是((u32)(0x64000000|0x000000FE))
因为使用FSMC_NE1,0x64000000改为0x60000000
使用FSMC_A16,0x000000FE改为0x0001FFFE
INT宏
具体为什么这样改,可以去学习一下FSMC

更改过后画板,打板,焊接,烧录程序,测试一次通过
电路就不发了,就是看着正点原子的画的,只改了那几个引脚

离线

#2 2020-09-03 14:22:11

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

Re: stm32f103vct6使用dm9000时地址偏移问题(正点原子例程改)

这个是不是用STM32Cube 点点配配配就差不多了。

离线

#3 2024-01-10 16:24:00

为了开源梦想
会员
注册时间: 2024-01-10
已发帖子: 9
积分: 2

Re: stm32f103vct6使用dm9000时地址偏移问题(正点原子例程改)

vip888888 说:

这个是不是用STM32Cube 点点配配配就差不多了。

Cube用的是HAl库,我看楼主这个像标准库,应该不行

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn