无法进入main 函数原因之一


因为用了printf 函数而无法进入到main函数:

解决1:使用了printf之类的库函数,需要编写_sys_exit()之类底层函数。照你的提示看,也许是_sys_open()没写。_sys_xxx之类的的只要写个空函数就行了;因printf()之类的函数,使用了半主机模式。使用微库的话,不会使用半主机模式,所以就没有问题。
添加下面代码,就可以使用标准库了:

#pragma import(__use_no_semihosting)
_sys_exit(int x)
{
        x = x;
}
struct __FILE
{
int handle;
/* Whatever you require here. If the only file you are using is */
/* standard output using printf() for debugging, no file handling */
/* is required. */
};
/* FILE is typedef’ d in stdio.h. */
FILE __stdout;


解决方法2:勾选“微库”MicroLIB--->Use MicroLIB

单片机的功能之所以强大,是因为集成了很多片上资源,常见的如定时器功能、AD采样功能、外部中断资源、PWM功能等,合理的利用这些资源可以提高电路的设计效率、降低电路的设计难度,使技术方案更加优化、产品成本更低、性能更稳定。所以学习这些片上资源非常重要。



本文来之此贴的整理:http://www.amobbs.com/thread-3307937-1-1.html ,点击阅读原文直接进入


> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >

在模拟特性方面,该单片机包含一个多通道12位A/D转换器和比较器功能。还带有多个使用灵活的定时器模块,可提供定时功能、脉冲产生功能及PWM产生等功能。内部看门狗定时器、低电压复位和低电压检测等内部保护特性,外加优秀的抗干扰和ESD保护性能,确保单片机在恶劣的电磁干扰环境下可靠地运行。

生成海报
点赞 0

thePro

我还没有学会写个人说明!

相关推荐

STM32 printf重定向(串口输出)

一、前言 什么是重定向?重定向是指将fputc里面的输出指向目标设备。因printf函数调用了fputc,而fputc输出有默认指向的目标,且不同库中的fputc输出指向不同,所以需要重写fputc

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许

MDK5(keil5)编译按钮不见?

1.大部分是第一种情况 整个组件工具栏都不见了 解决办法: 2.小部分是组件工具栏没有编译按钮 解决办法: 参考: KEIL4 上面那个编译的工具栏怎么不见了 Keil工具栏详细说明