推荐阅读最新更新时间:2024-03-16 15:09
keil MDK开发STM32使用内联函数
笔者在做移植时,将Embest IDE环境下的例程移到 REALVIEW MDK的过程中,曾经遇到这样一个问题:在生成工程时,编译全部通过,但在链接时提示许多符号未定义!如果读者也遇到过这个问题,请继续看下去,如果链接时提示未定义的变量是一些内联函数(即使用了关键字__inline)。那么就是笔者遇到的问题了。希望这篇文章对您有所帮助。 在MDK中使用关键字__inline时,除了执行速度和占用空间和普通函数不一样之外,还有以下与普通函数不一样的地方:表现为,不能将其申明为外部函数,即不能将__inline函数定义在一个外部文件中然后在引用的文件中申明为extern类型。 原因是MDK中使用的__inline函数时和标准C++中的
[单片机]
51单片机Keil C51的使用(C语言)
实验目的: 初步掌握Keil(C51语言)和SUN ES59PA实验仪的操作和使用,能够输入和运行简单的程序。 实验设备: SUN ES59PA实验仪一套、具有一个RS232串行口并安装Keil C51的计算机一台。 实验原理及环境: 1.在计算机上已安装Keil C51软件。这个软件既可以与硬件(SUN ES59PA实验仪)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 2. 实验的硬件环境: A3区:CPU总线、I/O接口 片选区 JP37,JP45:地址线A0..A7;
[单片机]
keil中勾选microlib使用printf
在keil (我用的是realview mdk3.11)建立ARM的工程时 其中有一项是选 use MicroLIB 由于对KEIL不是很熟悉,于是就查了查,得到了以下信息: microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。 microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,例如,memcpy()。 与缺省 C 库之间的差异 microlib 与缺省 C 库之间的主要差异是: microlib 不符合 ISO C 库标准。 不支持某些 IS
[单片机]
STM32开发笔记68: keil中使用ST-Link不能成功下载的真实原因
单片机型号:STM32F091RCT6 在STM32开发笔记67: 在keil中使用ST-Link不能成功下载的解决方法提到解决keil中使用ST-Link不能成功下载的一种方法,经仔细分析其实原因还在于程序上。 不能成功下载的程序中,包含如下程序,: CInit::CInit(uint8_t mode) { //底层初始化 HAL_Init(); //GPIO时钟使能 __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOD_CLK_ENAB
[单片机]
Keil C51中对双数据指针的支持情况及代码生成
在8051体系中,数据指针DPTR作为一个特殊的16位寄存器,用于寻址64 KB的XDATA或CODE空间,通常它被当作一个16位指针,指向一个常数表。双数据指针可以改善同时有两个16位指针使用时的性能。作为一种增强特性,有许多8051派生型器件支持双数据指针。以宏晶科技STC89系列的产品为例,DPTR被增强为DPTR0和DPTR1两个,仍然使用原来的地址,用另外一个SFR AUXR1的0位DPS来切换。当DPS位为0时,所有对DPTR的操作使用DPTR0;当DPS位为1时,所有对DPTR的操作使用DPTR1。这样,通过一个简单的INC AUXR1指令,就可以来回切换两个数据指针。 1 Keil C51对双数据指针的支持情况 作
[单片机]
【单片机】实战篇:Keil+Proteus数码管计数99
本篇文章: 主要内容:静态点亮数码管显示数字99、动态点亮数码管显示12345678(8位数码管)。 功能一:静态点亮数码管显示数字99(2位数码管) 功能二:动态点亮数码管显示12345678(8位数码管) 正文如下: 一、静态点亮数码管 1)Proteus绘图 第一步:根据给定元器件进行绘图 如果不知如何绘图,(新手请看:https://blog.csdn.net/qq_44366571/article/details/107053338) 注:遇到新知识: 注:点击出现,属性赋值工具 自定义名字: 注意: 一般的话,框中输入NET=P1#(#表示的意思是:0-9),点击圆圈即可命名。 例如: NET=A1
[单片机]
keil出現 Error: Flash Download failed: - "Cortex-M3" 問題解決
有時候切換了編譯方式如從ARMCC轉變為GCC編譯器,編譯下載時會出現 Error: Flash Download failed: - Cortex-M3 這個錯誤。 目前,自己測試解決的方式是:刪除相同目錄下的 “DebugConfig” 、“Listings 、“Objects”、“JLinkLog.txt”、“JLinkSettings.ini” 然後重新設置調試方式,重新編譯,再下載。
[单片机]
Keil软件仿真的串口调试技巧
引言 在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。 在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真器的确是很有效的
[嵌入式]