关于IAR 里面用JLINK烧写STM32程序的Target reset 错误

今天调程序调了一个通宵。错误的提示是这个,

Fri Oct 21 07:18:35 2011: Target reset (没错,错误提示就是这么短,程序一烧进单片机里面,程序就跑飞了,一直没找到原因)

一直在找问题。

后来,通过一行一行地对照代码,发现几乎全部都是一样的。只是别人的程序是所有的设置都一股脑地放在一个函数里面。

而我把里面的设置分了类,然后分成几个函数,然后这几个函数再放进一个总的函数里面,这样程序比较有条理一点。

但是,这样居然就错误了。然后我也像别人一样把函数里面的东西都拿出来全部放进一个函数里面,然后就可以通过了。

我想可能是哪里有一点点不同吧,然后又认真看了很久,试了很久,还是没发现什么,反正是拿出函数外面就可以正常执行,

而放进一个比较小的函数里面就提示出错。后来甚至是以为编译器没做好。

然后就想将就一下好了,还是早点睡觉吧,所以我把所有函数都拆了堆在一起,然后就可以了。


后来想上网放松一下的时候,搜了一下这个错误,然后发现出现这个错误的人挺多的,但都是伴随着很多别的的错误。

后来发现有人说解决了问题。其实就是把设置好你的STM32的flash的位置和SRAM的位置

比如我的是RB型号的单片机,所以就设置为ROM 0x08000000~  0x0801FFFF  RAM 0x20000000  ~  0x20004FFF

然后我再把我原来的函数慢慢地组装回去,然后就一点问题都没有了。

唉!最后总结就是,其实很多问题可能就会出现在你觉得没什么大不了的地方。以前觉得那个地方的参数设不设都一样能够写程序并烧进去,

等到遇到问题了居然调了一个晚上,唉,真狼狈啊!!~~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
使用IAR实现LED灯闪烁的步骤如下: 1. 配置IAR开发环境:首先,确保你已经安装了IAR Embedded Workbench for ARM,并且正确配置了开发板的相关信息。 2. 创建一个新的工程:在IAR中,选择File -> New -> Project,选择适合你的开发板的项目模板,例如STM32F4xx。 3. 配置工程设置:在项目属性中,设置正确的芯片型号、时钟频率等信息。确保选择了正确的编译器和调试器。 4. 编写代码:在工程中创建一个新的源文件,例如main.c。在该文件中,编写LED灯闪烁的代码。以下是一个简单的示例代码: ```c #include "stm32f4xx.h" int main(void) { // 初始化LED引脚 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); while (1) { // 点亮LED GPIO_SetBits(GPIOA, GPIO_Pin_5); // 延时一段时间 for (int i = 0; i < 1000000; i++); // 熄灭LED GPIO_ResetBits(GPIOA, GPIO_Pin_5); // 延时一段时间 for (int i = 0; i < 1000000; i++); } } ``` 5. 编译和下载:在IAR中,选择Project -> Rebuild All来编译工程。然后,将生成的可执行文件下载到开发板上进行调试。 6. 调试和测试:连接开发板并启动调试器,在IAR中选择Debug -> Download and Debug来下载并开始调试。LED灯应该开始闪烁。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值