资讯
简析STM32的启动过程(2024-01-18)
个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的......
一文读懂stm32_iap在线升级全过程(2023-06-28)
后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,这样一来main函数的......
两道面试题所引发的C指针的思考(2023-08-01)
中对一个指针常量进行赋值操作,于是就在程序运行中调用fun函数的时候造成了段错误。
以上就是这段代码的错误分析,既然我们通过gdb定位到了段错误的位置,也分析出了段错误产生的原因,那么......
C语言在单片机中是如何执行的(2024-07-04)
初值,红色箭头指向的位置就是栈顶指针指向的位置。
代码中的局部变量,函数栈帧等等数据,全部都存放在SP开始往下的位置,因为 栈的开辟是从高地址向低地址 。
如上图所示,在main函数......
使用寄存器点亮LED—STM32的寄存器映射代码讲解(2023-02-15)
达到稳定运行的状态。其实这个函数在固件库里面有提供,官方已经为我们写好。
__main 其实不是我们定义的(不要与C 语言中的main 函数混淆),这是一个C 库函数,当编译器编译时,只要遇到这个标号就会定义这个函数......
单片机C语言的知识汇总(2022-12-14)
被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏
·提供常用的标准函数库,以供用户直接使用;
·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;
·可方......
STM32的启动文件详解(2023-02-23)
的是栈顶地址,0X04 存放的是复位程序的地址,以此类推。从代码上看,向量表中存放的都是中断服务函数的函数名,可我们知道C 语言中的函数名就是一个地址。
DCD:分配一个或者多个以字为单位的内存,以四......
C51使用经验(2022-12-27)
时执行的代码并非是从main()函数的第一句语句开始的,在main()函数的第一句语句执行前要先执行一段’起始代码’。正是这段代码执行了清零的工作。C编译程序提供了这段起始代码的源程序,名为......
C51编程经验汇总分享(2023-04-06)
不了热启动的要求。这是为什么呢?原来,用C语言编程时,开机时执 行的代码并非是从main()函数的第一语句开始的,在main()函数的第一语句执行前要先执行一段‘起始代码’。正是这段代码执行了内存清零的工作。 C......
关于STM32启动文件startup_stm32f10x_hd.s的代码(2024-07-23)
节为一个单位,地址 0 存放的是栈顶地址, 0X04 存放的是复位程序的地址,以此类推。从代码上看,向量表中存放的都是中断服务函数的函数名,可我们知道 C 语言中的函数名就是一个地址。
DCD:分配......
单片机的程序结束后都干嘛去了?(2022-12-08)
第二个程序中主循环 main()函数始终没有退出,而第一个程序,main()函数退出了。似乎前面LED微微点亮 应该与主函数退出之后,单片机都干了些啥有关系。
那么就剩下一个问题:对于普通的嵌入式系统,C语言编程中main......
STM32启动文件startup_stm32f10x_hd.s的代码讲解(2023-06-26)
表从 FLASH 的 0 地址开始放置,以 4 个字节为一个单位,地址 0 存放的是栈顶地址, 0X04 存放的是复位程序的地址,以此类推。从代码上看,向量表中存放的都是中断服务函数的函数名,可我们知道 C 语言中的函数......
单片机程序结束后去哪儿了?(2024-10-30 16:05:15)
程序去哪了?
在博文
单片机C语言while(1)的问题
中作者对于 KEIL编译器和PIC的 MAPLAB编译器对于main函数的......
单片机初学者编程经常会碰到的问题及处理办法(2022-12-21)
分号必须是英文输入模式下的输入。
②大括号不对等,导致编译不通过
C语言程序编程,大括号的左括号和右括号必须一一对应,否则编译提示错误。
③函数未声明,编译提示函数功能违法。
C语言中编程种,调用代码后面书写的函数......
详解STM32启动文件(2023-01-06)
个字节为一个单位,地址 0 存放的是栈顶地址, 0X04 存放的是复位程序的地址,以此类推。从代码上看,向量表中存放的都是中断服务函数的函数名,可我们知道 C 语言中的函数名就是一个地址。
DCD......
嵌入式C中的goto语句,争议很大(2024-03-21)
的作用是无条件跳转,但是只能够跳到循环块结束的位置 —— 继续进入下一循环(continue)或者结束循环(break)。
switch/case结构
C 语言、C++ 和 Java 中的 switch 语句......
用_crol_函数实现LED流水灯的调试过程(2024-08-16)
开始的代码大概是上面这个样子的,我的预期是先是D1亮,然后是D1灭,D2亮,结果是始终是D1亮。百思不得其解,于是开始了漫长的调试。
感觉问题应该出在_crol_这个函数的前后,F9下了两个断点
ctrl......
嵌入式C语言中各变量存储的位置(2023-08-29)
嵌入式C语言中各变量存储的位置;局部、局部静态、全局、全局静态变量区别如下:本文引用地址:· 局部变量:栈区;
· 局部静态变量:静态区;
· 全局变量:静态区的常量区;
· 全局静态变量:静态......
一文解析STM32启动流程(2024-02-03)
-> __rt_entry -> main函数
这里需要注意一下,__main 是 c 库中的一个函数,和 main 函数是有区别的!!!
启动文件内容描述
上图中的汇编关键字最好记住,因为......
用c语言实现函数重载(2024-07-25)
用c语言实现函数重载;一. 什么是函数重载? 函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数、类型、顺序)的函数,这组函数被称为重载函数。重载函数通常用来声明一组功能相似的函数......
S3C2440C语言点灯(2024-07-15)
成输出引脚
*pGPFDAT = 0;
//低电平点灯
会导致
在这两个地址中把这两个数据写进去
代码的编写
在编写C语言的代码前,我们先考虑两个问题
1、编写的main函数被谁调用
2、main函数......
M20 中断、定时器与程序存储方式(2023-01-30)
counter //1000毫秒计数器
unsigned char runCode; //运行代码 主要函数和关键语句添加,通过观察此变量了解程序运行到的位置......
STM32启动文件简介、详细步骤及代码讲解(2023-05-23)
开始。后来网上查查不是。原来在执行main函数之前,需要先执行一段汇编程序和完成C语言资源硬件的初始化工作。就是以下几个功能:
1--初始化栈指针MSP=_initial_sp。
2--初始......
单片机c语言教程第十三章--C51循环语句(2023-05-10)
return 语句是返回语句,不属于循环语句,是要学习的最后一个语句所以一并写下了。 返回语句是用于结束函数的执行,返回到调用函数时的位置。语法有二种:
return (表达式);
return......
汇编写51单片机之循环点亮LED(2023-01-11)
过他是跳回到D1这里,所以他又回到d1那里,不断的重复。
RET ;这个是函数的返回,表示结束这个函数。
我写一段c语言的代码来表示这个汇编里面的延时函数吧,不然怕你们看不懂。
public void......
C语言进阶之回调函数详解(2023-08-22)
C语言进阶之回调函数详解;一、函数指针在讲之前,我们需要了解函数指针。本文引用地址:我们都知道,的灵魂是指针,我们经常使用整型指针,字符串指针,结构体指针等。
int *p1;char *p2......
STM32H7的启动过程分析(2023-08-09)
STM32H7的启动过程分析;本章教程主要跟大家讲STM32H7的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的部分。
启动......
详解STM32启动过程(2024-04-24)
了栈顶地址。__initial_sp 只是一个标号,标号主要用于表示一片内存空间的某个位置,等价于 C 语言中的“地址”概念。地址仅仅表示存储空间的一个位置,从 C 语言的角度来看,变量的地址,数组的地址或是函数的......
详解STM32启动过程(2023-06-20)
,等价于 C 语言中的“地址”概念。地址仅仅表示存储空间的一个位置,从 C 语言的角度来看,变量的地址,数组的地址或是函数的入口地址在本质上并无区别。
第2部分......
51单片机使用C语言点亮闪烁LED灯(2023-05-10)
,sbit同样是单片机c语言中的一种扩充数据类型,利用它能访问芯片内部的 RAM中的可寻址位或特殊功能寄存器中的可寻址位。
函数
void main()和 void delay(uchar ms)都是函数......
51单片机的内存映射(一)(2022-12-15)
=0x13,51单片机栈是正增长的,所以第四个参数的位置就是0x14与0x15所在的位置。
2、位寻址区
0x20-0x2F一共16个字节、128位,所以寻址范围是0-0x7F,内存......
80C51学习 流水灯(2024-08-21)
80C51学习 流水灯;/*
c语言常用预处理命令
1.#define使用
#define A PO 后面不用加分号、
#define PI 3.14
2.循环左移右移函数......
5.4.2 按键扫描(单片机最简洁的键盘扫描程序详解)(2023-01-31)
号存储或者在某个时间段不消失。
一个文件中,在所有函数的前面定义的变量是全局变量,可以被文件中所有函数使用
程序受两个基本的规则约束,一个是时间,一个是空间,全局的意义就是空间约束
实际所有看得见的事物都脱离不了时间和空间,一段程序的位置......
51单片机中将变量、数组、函数设置在固定位置,定位到绝对地址(2024-07-25)
(0x200)再次编译即可。相应地,若定义的是data/idata等变量,则相应处理即可。
三、函数的定位
假如要把C源文件 tools.c 中的函数int BIN2HEX(int xx){ ...}放在......
汇编和C语言相结合的51单片机编程技巧(2023-06-25)
序模块最后一行要写一个END,没有这一句,编译器不会报错,但会出现警告,容易出现问题,为了规范编程,大家还是别偷懒了。
最后一点就是头文件的作用了,这跟C语言的作用一样,可以对变量或函数进行声明,这个......
STM32 启动流程的详细讲解(2024-08-08)
/118400368
下面我们就来具体看一下用户从Flash启动STM32的过程,主要讲解从上电复位到main函数的过程。主要有以下步骤:
1.初始化堆栈指针 SP=_initial_sp,初始化 PC指针......
手动实现51单片机函数切换(2024-08-22)
还是想把实现的过程分享出来,这篇文章是其中的内容之一,有兴趣的同学可以先了解一下,点个关注收藏,后面持续更新!
二、函数切换原理
在使用C语言编写51单片机的程序时,如果我们在函数一中调用另外一个函数,只需......
STM32学习笔记之电容触摸2(2024-03-07)
程文件中的过程文件放置在该目录下的设置方式如下图所示。
(2)主函数文件及主工程文件:在Keil中创建的工程,以及包括main函数的c文件都位于这个目录内。
图中标注的3个文件都是必不可少的文件,带有Keil图标......
教你如何轻松写单片机的指针(2024-05-06)
教你如何轻松写单片机的指针;摘要:大家想过没有我们用keil写单片机的代码,你的函数啊、变量啊最终都放在了哪里?我们一直说的内存五区,到底是哪五区?到底放在芯片的哪个地方呢?还有为什么你学完C语言......
基于STM32设计的炉温温度检测仪(2023-09-22)
了OLED_Set_Pos()函数来设置数字显示的位置,然后通过循环取余数的方法将数字逐位分离,再将其转换为字符型并通过OLED_Write_Data()函数输出到OLED屏幕上,最终......
结合STM32单片来讲讲结构体的运用(2023-10-20)
结合STM32单片来讲讲结构体的运用;摘要:听说还有好多学单片机的小伙伴不会用结构体?指针和结构体是学单片机必须要掌握的,如果你C语言掌握的不牢,单片机根本学不到精髓,只能完成一些低级的项目。看得......
mini2440之首个C程序点亮LED分析(2024-06-20)
化时钟(2440一上电的为12hz,最大可以达到400hz,所以为了使其更快,就需要设置高一点)
3.初始化SDRAM
软件初始化
4.设置栈(将栈指针指向某块内存)
5.设置main函数的返回地址
6......
STM32中重要的C语言知识点总结(2023-10-24)
变成:
以上两种方法都可以正常编译、运行了。
但是,我们C语言中,每条语句往往以分号结尾;并且,总有些人习惯在if判断之后只有一条语句的情况下不加大括号;而且我们创建的DBG_PRINTF宏函数的......
STM32 IIC读写AT24C02(二)(2024-03-29)
一个未知的数返回。这里退出该次读操作用到了C语言中很忌讳的goto,直接让程序跳到想要的位置。这种方式来做处理在嵌入式中是比较常见的,虽然C语言中goto是不被推荐使用的,但是只要能把它用的好,就可以大胆的用。
字节读写函数......
单片机固件中加入版本信息的方法(2023-03-27)
是C语言中的内置宏,分别是当前的编译日期和编译时间)。
const AppInfo_t sg_tAppInfo =
{
"STM32_V0.1.5",
__DATE__......
STM32入门学习笔记之电容触摸实验(下)(2024-04-18)
包含了整个工程所需的头文件,文件路径以及编译器位置,文本文件图标的则是c文件,main函数就放在这个位置,.s后缀的为汇编启动文件,用于帮助芯片创建C代码运行环境,初始化堆栈等功能,为了达到最快效率,所以采用汇编语言......
STM32 LL 为什么比 HAL 高效?(2022-12-07)
明显发现:LL库的执行效率更高。
什么是内联函数
写到这里,就可能有读者会问:什么是内联函数?
通常,程序执行时,处理器从内存中读取代码执行。当程序中调用一个函数时,程序跳到存储器中保存函数的位置,开始......
keil c51是如何启动c程序的(2023-06-25)
keil c51是如何启动c程序的;汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序......
s3c2440中断体系(2024-07-15)
程序状态寄存器)
s3c2440中断体系
s3c2440中断体系
代码语言:javascript
ldr sp, =4096 @ 设置栈指针,以下都是C函数,调用前需要设好栈
bl......
符号
主要是为了防止 C++ 和 Java 中的多个函数名重复产生的重载问题。由于每个重载函数都使用与原函数相同的名称,因此,支持函数重载的语言必须拥有一种机制,以区分同一个函数的许多重载版本。
c......
相关企业
;深圳中诚电子有限公司;;深圳中诚电子于2003年6月成立,至今已发展到300多人,其中管理人员占员工总数的35%,其中本科学历以上人员占到86%,目前我们已在该行业走在技术领先的位置,是一家高科技的民营企业!
;新晶晶服饰;;直是国内网游领域内的霸主,无论是收入还是在线人数都处于第一的位置。2005年11月,盛大推出CSP商业模式,宣布将旗下的《热血传奇》、《传奇世界》等几款主力游戏免费。2005年第
;鸿崴;;我公司在大陆已有多年,在市场也有一定的位置.
;勤思智能电子;;PCB板制作及打样 C语言程序编写 新项目开发
;杭州市金创科技有限公司;;站在客户的位置上,从客户的角度去思考。”这句话听上去很专业!
C&D ELECTRONICS;;Established in 1982, and now in its second generation, C&D Electronics is a W/MBE
量输出型、速度监控型等等!以及用于总线(ASI)系统传感器和带定位装置接近开关。应用范围: 可广泛应用于对物体进行非接触式的高精度的位置测量的场合,可覆盖大多数的工业领域。
;西安北大青鸟;;程序逻辑和C语言实现 SQL Server应用开发 Java面向对象程序设计 网页编程 .Net平台和C#编程 SQL Server数据库设计和实现 WinForms高级
;上海兆和电子有限公司;;本公司是专业生产陶瓷PTC企业,有十年的生产历史,形成了规模的生产流水线,产品的各项参数指标基本上都处于领先的位置.有需要的客户请与我联系.联系
安全型、耐高压型、阀位控制型、模拟量输出型、速度监控型等等!以及用于总线(ASI)系统传感器和带定位装置接近开关。 应用范围: 可广泛应用于对物体进行非接触式的高精度的位置测量的场合,可覆盖大多数的工业领域。