
MCU程序设计
qrshi
这个作者很懒,什么都没留下…
展开
-
keil工具c语言MCU程序设计—#if #elif #else #endif 编译不按预期进行
keil工具c语言MCU程序设计—#if #elif #else #endif 编译不按预期进行1.使用#if #elif #else #endif语句预编译,结果不按预期,语法无错误,代码如下:#if (SZLBCONTROLEN==1) GPIO_ResetBits(GPIOB,GPIO_Pin_15); // 输出低#原创 2015-03-14 15:59:30 · 6435 阅读 · 0 评论 -
MSP430的intrinsics.h详解
来源:智拓仪器杭州精诚电子工作室1.1.1 扩展关键字 1. asm 也可以写成 _asm。功能是在c程序中直接嵌入汇编语言。 asm(“string”); 其中string必须是有效的汇编语句。 2. __interrupt 放在函数前面,标志中断函数。下面这段程序是异步串行口UART0的接受中断函数。UART0RX_VECTOR为异步串行口UART0的接转载 2016-04-26 08:42:43 · 3904 阅读 · 1 评论 -
IAR之IAR EWARM软件软件配置
IAR之IAR EWARM软件软件配置转自:http://www.360doc.com/content/16/0415/10/32464717_550770606.shtmlIAR EWARM软件集成环境编译链接1.问:同一Workspace下的多个Project之间有无关系? 答:没有。在同一Workspace下可以放置多转载 2016-04-15 10:06:35 · 4181 阅读 · 0 评论 -
IAR之调试报错Flash verification failed.
IAR之调试报错Flash verification failed. 原因是在option=>Debugger=>ST-LINK中download勾选了Suppress,该选项是用在调试flash中之前的程序,防止调试器修改目标代码程序,如果程序修改后,重新编译,则会导致目标代码与编译后的数据不一致,所以报错;原创 2016-04-15 10:15:01 · 3045 阅读 · 1 评论 -
MSP430之__even_in_range
MSP430之__even_in_range 转自:http://lfwendula0.blog.163.com/blog/static/205138236201272973147213/使用__even_in_range 的好处是可以生成效率比较高的代码,在判断多中断源的中断的来源时可以使用此函数。 原型:unsigned short __eve转载 2016-05-24 15:49:29 · 5279 阅读 · 0 评论 -
MSP430之__intrinsic
MSP430之__intrinsic最近发现很多地方都看到了__intrinsic,查资料发现是intrinsic.h中的东西,那为什么intrinsic.h中定义的函数都要在前面加__intrinsic啊?例如:__intrinsic void __no_operation(void);__intrinsic void __enable_interrupt(void);转载 2016-05-24 15:50:29 · 3128 阅读 · 0 评论 -
msp430之__delay_cycles精确延时的说明及改正
msp430之__delay_cycles精确延时的说明及改正转自:http://www.cnblogs.com/nbsofer/archive/2013/07/05/3173502.html 在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题. IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的转载 2016-05-24 16:17:57 · 5097 阅读 · 0 评论 -
MSP430之如何降低系统功耗1
MSP430之如何降低系统功耗1转自:http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/t/24347.aspx 众所周知,MSP430以其超低功耗而著称。但是很多用户反应,在实际应用中,测量MSP430的功耗时,测量结果和MSP430数据手册相差甚远。其实这里主要涉及到两方转载 2016-04-20 20:33:21 · 5306 阅读 · 0 评论 -
51之51单片机RAM数据存储区学习笔记
51之51单片机RAM数据存储区学习笔记转自:http://www.eeworld.com.cn/mcu/2014/0826/article_16044.html1.RAMkeil C语言编程RAM是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128B,则未初始化的变量的初值转载 2016-11-20 19:02:56 · 5726 阅读 · 1 评论 -
51之KEIL调试查看ROM或RAM
KEIL之调试查看ROM或RAM 转自:http://blog.youkuaiyun.com/chenhezhuyan/article/details/8735696/ Ctrl+F5或点击调试按钮进入调试界面: 在工具栏上点击Memory Windows则右下角出现Memory1的页面,默认出现的是ROM的查看界面,在Address一栏输入十六进制的地址即可查看ROM转载 2016-11-20 15:10:29 · 7879 阅读 · 0 评论 -
51之51系列中data,idata,xdata,pdata的区别
51之51系列中data,idata,xdata,pdata的区别51系列中data,idata,xdata,pdata的区别dATa: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。idATa: 固定指前面0x00-0xff的256个RAM,其中前128和dATa的128完全相同,只是因为访问的方式不同。转载 2016-11-20 19:27:48 · 3671 阅读 · 0 评论 -
51之51单片机程序执行流程(STARTUP.A51)
51之51单片机程序执行流程(STARTUP.A51)keil 版本:uVision 4 单片机是没有上操作系统的东西,在keil中编写的代码都是裸机代码,深入编写裸机代码有助于了解硬件的特性。 若不是硬件特性已定的情况之下的其它流程都是代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面转载 2016-11-22 00:39:26 · 1587 阅读 · 0 评论 -
KEIL之Image$$RW_IRAM1$$Base
转自:http://www.cnblogs.com/idle_man/archive/2010/12/18/1910158.html KEIL之Image$$RW_IRAM1$$Base这篇文章是从网上摘录的,觉得蛮有用的,所以保存下来IMPORT |Image$$RO$$Base| ; Base of ROM codeIMPORT |Image$$RO$$Limit| ...转载 2018-08-26 14:59:45 · 6739 阅读 · 0 评论 -
KEIL之attribute描述符
转自:https://blog.youkuaiyun.com/eleanoryss/article/details/71750910KEIL之attribute描述符_attribute__改变段的特性,即section选项定义:gcc通过选项attribute可以改变所声明或定义的函数、数据的特性。它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noretur...转载 2018-08-25 15:45:26 · 5055 阅读 · 0 评论 -
IAR之函数和变量的绝对地址定位
IAR之函数和变量的绝对地址定位 转自:http://blog.youkuaiyun.com/slj_win/article/details/21516497 昨天我突然冒出个想法,能否利用函数和变量的绝对定位,实现程序的模块化更新。 也就是说,如果我要改变某个函数,只需要更新flash里面一个局部,也许只需要更新几百个字节,而无须重新下载整个上百K的程序。 经过查找资转载 2016-03-27 12:30:25 · 5699 阅读 · 1 评论 -
STM8的数据@near @tiny定义
STM8的数据@near @tiny定义总是记不住这个:stm8 stvd下near等于51的xdatatiny等于51的idata http://www.waveshare.net/article/STM8-3-1-10.htm 如何分配变量到指定的地址转载 2016-04-08 14:05:18 · 3802 阅读 · 0 评论 -
MCU程序设计之如何使用标准C函数
MCU程序设计之如何使用标准C函数为使用标准C库函数,一般编译器都在安装目录下面预先放置了相关函数文件;例如:使用KEIL C51开发51内核的MCU,则需要在KEIL安装目录\Keil\C51\INC下查找相关函数文件;如使用KEILCC开发ARM 内核的MCU,则需要在KEIL安装目录\Keil\ARM\ARMCC\include下查找相关函数文件;原创 2015-04-11 14:53:50 · 512 阅读 · 0 评论 -
MCU程序设计之STM8S的optionbytes
MCU程序设计之STM8S的optionbytes今天使用STM8S在程序中修改optionbyte遇到问题一直读取为0,不能进入设置流程,之前的程序今天重新修改东西,使用新的片子,原来程序如下: AFR_TEMP = (uint16_t)((uint16_t)0x01 AFR_TEMP = AFR_TEMP | (uint16_t)0xFE; AFR_TEMP原创 2015-05-06 16:45:31 · 3476 阅读 · 0 评论 -
MCU程序设计之STM32F10X的中断NVIC
MCU程序设计之STM32F10X的中断NVICSTM32F10X使用4bit设置抢占优先级和子优先级,从高位到低位,高2bit设置抢占,低2bit设置子优先级;抢占优先级:中断到来时直接执行新中断;子优先级:在同一抢占优先级下,同时到来两个中断先执行子优先级高的,如低子优先级正在执行,则先执行完再执行高子优先级。原创 2015-05-07 10:25:13 · 961 阅读 · 0 评论 -
KEIL工具之编译优化选项
KEIL工具之编译优化选项use cross-module optimization//跨模块优化说明:使能链接器反馈文件,从而能够更深层次的代码优化use microLIB//微型库说明:改变C run-rime库设置以产生更小巧的代码,它不完全兼容ANSI,但已能满足大多数的应用。===================================转载 2015-05-20 21:54:28 · 10582 阅读 · 0 评论 -
KEIl工具之scatter file分散加载文件2
KEIl工具之scatter file分散加载文件2转自:http://blog.chinaunix.net/uid-25358071-id-298752.html转自http://www.yxarm.com/TechShow.asp?id=157 (和《ARM嵌入式应用技术基础》186-190页一模一样) Scatter文件编写 一个映像文转载 2015-05-27 17:01:59 · 3756 阅读 · 0 评论 -
KEIL之ARM中常驻RAM的程序设计方法
KEIL之ARM中常驻RAM的程序设计方法转自:http://wenku.baidu.com/link?url=0OaySZQVDOTnCYEstVC-m4z5vzpWI5Uyxsb1aeSnZj7ehA0e2s1xBEZKYIdIn3bOZAlDlyCGs2jE1nRNHEvI189Umzg530FHWet7LOxBsTeStellaris学习笔记ARM中常驻RAM的程序转载 2015-06-24 14:29:35 · 796 阅读 · 0 评论 -
STM32之定时器prescaler
STM32之定时器prescaler1.引用手册中的描述:计数器由预分频器的时钟输出CK_CNT驱动,仅当设置了计数器TIMx_CR1寄存器中的计数器使能位(CEN)时,CK_CNT才有效。(更多有关使能计数器的细节,请参见控制器的从模式描述)。注意,在设置了TIMx_CR寄存器的CEN位的一个时钟周期后,计数器开始计数。所以需要在设置prescal原创 2015-08-29 16:52:51 · 9916 阅读 · 0 评论 -
MCU之CRC计算
转自:http://bbs.21ic.com/icview-111321-1-1.htmlMCU之CRC计算关于CRC算法 关于CRC算法,知其然,如果再知其所以然,事情就会清楚了。CRC算法,最重要的参数当然是生成多项式(CRC Polynomial),但(余数)初值和CRC数据最高位的位置也是很重要的两个参数,而这两个参数需要根据具体情况具体分析的转载 2015-08-29 14:43:13 · 1330 阅读 · 0 评论 -
GSM之短信读取格式
GSM之短信读取格式1.读取短信查看是否被删除,判断方式如下:格式0X2C 0X30 0x0D 0X0A不仅要判断长度为0,而且要判断前面是逗号分隔符。原创 2015-08-17 22:35:08 · 519 阅读 · 0 评论 -
GSM之返回命令提取
GSM之返回命令提取1.使用strstr函数返回相同字符的首字符地址;原创 2015-08-17 17:26:09 · 343 阅读 · 0 评论 -
wifi项目之NL6221 云
wifi项目之NL6221 云1.枚举使用enum;typedef enum Airc_status_mode{ cool=0, fan, hum, aut, hot}airc_status_mode;2.头文件包含问题;3.结构体赋值问题;memcpy(up原创 2015-09-07 20:03:39 · 1002 阅读 · 0 评论 -
stm8程序设计之PWM
stm8程序设计之PWM转自:http://blog.sina.com.cn/s/blog_72359bde0100y6we.html在单片机应用系统中,也常常会用到PWM 信号输出,例如电机转速的控制。现在很多高档的单片机也都集成了PWM 功能模块,方便用户的应用。 对于PWM 信号,主要涉及到两个概念,一个就是PWM 信号的周期或频率,另一转载 2016-04-06 00:04:51 · 6672 阅读 · 1 评论 -
IAR之目标文件内存分配
IAR之目标文件内存分配转自:http://www.xuebuyuan.com/1607716.html一直都对IAR编译出来的文件,在CPU开始执行该文件的时候,代码数据,代码里面的常量,全局变量,局部变量怎么分配在机器上不明白。看了一些资料,得到下面结论。如果发现有问题,希望留下宝贵的意见。由IAR编译出来的文件,从MAP文件看,大致可以分为:代码段(readonly co转载 2016-03-25 20:13:48 · 4283 阅读 · 0 评论 -
keil之Code-RO-data-RW-data-ZI-data
转自:https://blog.youkuaiyun.com/kaspar1992/article/details/52805474 keil之Code-RO-data-RW-data-ZI-data ARM中的RO、RW和ZI DATA 1; C中的指令以及常量被编译后是RO类型数据。2; C中的未被初始化或初始化为0的变量编译后是ZI类型数据。(更正:全局和静态数组表现出此...转载 2018-08-25 16:07:30 · 656 阅读 · 0 评论