完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
做毕业设计,小白一枚,把DW1000测距的代码从STM32F103上移植到STM32F107VC上,改了启动文件和宏定义,也改了时钟,程序可以成功编译,但是下到板子上没办法完成测距功能,老师让我回来看看是不是SPI接口不一样,但是我看完全是一样的,现在不知道怎么办,求各位大神指教!
如果需要什么代码可以跟我说,我也不知道是哪部分出了问题 |
|
相关推荐
11个回答
|
|
移植前先搭一个简单的led工程,确认OK,再移植代码,确保通信的时序是正确,用示波器测一下SPI接口的时钟
|
|
|
|
正确的移植方法是在STM32F107VC上新建工程,并且保证新建的工程师没有问题的,比如延时翻转LED灯,然后在把应用代码部分移植过来,不要在原有的工程上去移植,那样会有很多问题,比如有可能编译没有问题,链接时因为Flash的大小不同导致下载到MCU后不能正常运行。
|
|
|
|
你是用的固件库开发的吗?有STM32CubeMX新建个HAL的工程试一下。
测试一下SPI口的波形,看看时钟频率是否一致,数据片选的起始状态是否正常。 跟踪一下你的关于系统时钟的寄存器,看是否与103一致,必须先保证系统时钟。SPI相关寄存器是否正常。 |
|
|
|
我也建议工程新键,然后把应用代码移植过去,因为工程包含的很多东西可能会不一样
|
|
|
|
|
|
|
|
另外,测距有两块板子,一块发送一块接收,SPI接口应该怎么配置?
|
|
|
|
你可以把原来的文件贴上来,也许有人会帮你把事情搞定的
|
|
|
|
|
|
|
|
SPI是直接用的STM32F10x的固件库,从103移植到107应该不用修改吧?不懂
|
|
|
|
好吧,这个移植没有做过,怎么说都是问题,第一,你没有说清用的是什么芯片,是STM32F103R8?STM32F103VC? 这个芯片不同移植的步骤就不一样,管脚数不同?RAM不同,都影响移植,即使程序移植成功,你确定你的原程序中的SPI是和新的芯片构成的板子上的SPI 是同一个,比如是都是SPI2?SPI1和SPI2的管脚不同,开启的时钟不同,还有原程序要是用了管脚功能复用,你的问题就更多了,好了,你该去看看书,补补基础。
|
|
|
|
f103和107的启动文件不一样的,需要更改,不是只改型号就可以
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:44 , Processed in 0.611631 second(s), Total 62, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号