首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言基础之CC2530与STM32的调试问题总结

C语言基础之CC2530与STM32的调试问题总结

最近搭建一个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 ”
继承事业,薪火相传
返回列表