现在的位置: 首页 > 综合 > 正文

C语言基础之CC2530与STM32的调试问题总结(未完).

2018年11月05日 ⁄ 综合 ⁄ 共 994字 ⁄ 字号 评论关闭

最近搭建一个stm32和cc2530的无线平台,从底层硬件设计到上层软件协议设计都会涉及到。本篇文章主要集中整理了设计中出现的问题和解决办法。

问题1. 

调试过程中,查看寄存器状态(View->Register),但是发现显示的寄存器(见图1)和cc2530的寄存器(见图2)的不符.打开另一个工程调试,寄存器完全符合,估计是设置问题.

解决方法:

查询后发现,工程中Progject->Option中debugger中Device description file选择错误,为io51.应改为cc2530.修改后,调试中寄存器显示正确.

      

           图一                                                               图二

问题2. 

cc2530与stm32f103的spi通信接口的选择问题

初始设计电路时没有主要stm32f103的spi口和jtag的引脚复用,调试半天发现没法发送接收数据。最终查手册发现引脚选择错误

解决方法:

STM32烧写有两种方式,一种是JTAG,还有一种是SWD模式。SWD模式采用双线制通信,io和clk线。采用SWD下载模式,可以避免和spi口冲突。

问题3

新设计一个电路板,开始调试,结果烧写完程序,无法调试,也无法再下载。开始以为电源设计有问题,芯片烧了,遂重新设计焊接一片新STM32,结果重复了前面的过程。最终推测是烧写接口SWD的两个接口可能被程序占用了(烧写的别人的USB测试程序,没有细看。。。)。但是由于boot引脚没有留出,也非使用JTAG下载方式,擦除FLASH无从下手。

解决方法:

上电前就把复位拉低,然后上电,连jlink,点“擦除”,等了1秒后再放开复位脚,flash即可擦除。如果不引出复位脚,又没有复位按钮,也没有设置启动方式的跳线,遇到这种情况会很麻烦的。

PS:如果设计时没用讲SWD以外的接口连上,那么需要将JTAG的RESET引脚和单片机的RESET连上,不然擦除时会报错。并且选择JTAG供电。

报错信息: JLink Warning: RESET (pin 15) high, but should be low. Please check target hardware.

JLink Error: “Supply voltage is too low (1 Volt is required, Measured:0.8 Volt).Please check target power ”

抱歉!评论已关闭.