最近要做一个,实现数据采集,使用网线并通过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中
这个可以随意分配IO: INT ---> PD2-DM9000_INT,并更改程序
之后是DM9000的CS
没有FSMC_NE2,那就用FSMC_NE1
(不知道FSMC_NE1和FSMC_NE2是什么意思,有什么区别的可以去学习一下FSMC,这里只给出更改结果)
但是FSMC_NE1的PD7引脚,在原程序中,连接的是DM9000的RST
所以这两个引脚都需要更改,在正点原子项目dm9000.h中
dm9000.c中
更改为
最后一个DM9000的CMD
仔细对照IO表后,发现stm32f103vct6的FSMC中也没有FSMC_A7
我就直接使用PD11-FSMC_A16
(不要问我为什么用FSMC_A16,仅仅只是随便找了一个,stm32f103vct6中有FSMC_A16~FSMC_A22,都可以使用,
不过程序里面会有不同,之后会说明)
找到程序dm9000.h中
我们需要改的就是((u32)(0x64000000|0x000000FE))
因为使用FSMC_NE1,0x64000000改为0x60000000
使用FSMC_A16,0x000000FE改为0x0001FFFE
具体为什么这样改,可以去学习一下FSMC
更改过后画板,打板,焊接,烧录程序,测试一次通过
电路就不发了,就是看着正点原子的画的,只改了那几个引脚
离线
这个是不是用STM32Cube 点点配配配就差不多了。
离线
这个是不是用STM32Cube 点点配配配就差不多了。
Cube用的是HAl库,我看楼主这个像标准库,应该不行
离线