- 博客(10)
- 收藏
- 关注

原创 C8051F500 BootLoader
串口下载程序,整体思路:写一个引导程序,可以通过串口从上位机读取要下载的程序,然后擦除flash的需要写入的区域。写入执行程序,校验执行程序,跳转到执行程序处,开始执行。根据引导程序在flash中的位置不同可以分为两大流派。引导程序在前面和引导...
2019-11-22 21:05:25
5100
9

原创 C8051学习笔记二————基础
今天我们来结合代码说一下C8051的基础配置,包括:GPIO、晶振、定时器、和串口。其他外设留待下次。首先是GPIO配置:先说一下与GPIO相关的几个寄存器:PxMDIN,PxMDOUT,PxSKIP,XBR0,XBR1,XBR2。PxMDIN,输入模式寄存器。0代表模拟输入,1代表数字输入。比如配置P0口,0:3口是数字,4:7口是模拟。我们就可以配置P0MDIN=0x0F;PxMDOU...
2018-09-26 19:56:05
6233
原创 __cplusplus
在C++中 extern “C” { …},这告诉编译器用C语言的规则处理花括号内的函数和变量。因为C++支持函数重载,会进行名称修饰(Name Mangling),而C不会。这样可以避免链接时因名称修饰导致的找不到符号的问题。如上图代码块 之前一直不知是干啥用的。今天查了一下 做个记录。这个是用于用C++环境调用C语言写的头文件时,告诉编译器用C环境编译调用的文件,提高兼容性。
2025-03-20 10:56:36
284
原创 关于单片机变量保存
使用IAR forAVR 如果需要将常量保存在flash,需要用关键字__flash(注意:是两个下划线)使用code会报错,使用const 程序存储区和变量区都会增加。使用keil for 51 使用关键字 code。使用MPLAB 使用关键字 const。
2025-03-13 15:51:46
157
原创 HEX文件格式说明
HEX文件格式说明hex格式的文件是最常用的用于单片机程序编译后用于下载的文件。在这里我们介绍一下hex和bin文件的区别。bin文件是写在单片机内部的执行文件。就是bin文件里面的就是单片机里应该写入的所有内容。但是我们只有bin文件是无法下载使用的。因为bin文件里面没有地址信息。比如单片机的中断,是有固定的中断地址的,一旦发生中断就会跳转到中断地址运行。所以我们必须在把想在中断中执行的内容写在中断地址的地方(或者也可以在中断地址处加跳转指令到我们想要执行的地方)。再说hex文件,hex文件每一行开头
2020-06-13 08:47:57
1084
转载 Switch-case 内定义变量的问题
本博客为转载作者如下:严正声明:作者:psklf出处: https://www.cnblogs.com/psklf/p/6702767.html欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任!Switch-case 内定义变量的问题这个问题需要分开讨论,C 语言和 C++ 的标准定义是不同的。C++int Caset(int a) {swi...
2019-01-08 17:28:36
795
原创 C8051F5800笔记
因为项目需要,第一次使用C8051芯片,之前有过51单片机的经验。但是真的用C8051的时候还是遇到了许多坑。现在贴出来与大家分享。第一点U8 SFRPAGE_save = SFRPAGE;SFRPAGE = ACTIVE_PAGE;· · · SFRPAGE = SFRPAGE_save;这个几行代码,在C8051的寄存器配置的时候经常要用到。那这几行代码是什么意思呢。第一行是记...
2018-09-21 20:41:17
1300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人