看逻辑地址是否统一编址。
FLASH,RAM在同一个逻辑地址空间的,都是直接用用const,如arm,stm8,msp430等。
FLASH,RAM逻辑地址空间分开的,要用其它办法,通常是特殊关键字,__flash,__code等。
如AVR,8051等。
注:const本身并没有flash的意思。
如果flash,ram逻辑地址统一编址,那么编译器把全局或静态const变量分配到FLASH,RAM都可以。
为了节省ram,通常编译器会把全局或静态const变量分配到FLASH。
如果flash,ram逻辑地址分开编址,那么全局或静态const变量只能放到ram所在的逻辑地址空间,而无法放到FLASH。
注:逻辑地址统一编址,可以是哈弗结构结构,也可能不是。
逻辑地址分开编址,通常是哈弗结构。
关键字:STM32F103 晶振
引用地址:
STM32F103 的晶振由8M改为了12M
推荐阅读最新更新时间:2024-03-16 15:43
单片机为什么需要晶振?外接晶体的值可以随意选择呢?
首先解释一下单片机为什么需要晶振。 晶振是什么?全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。 第二个问题,是不是外接晶体的值可以随意选择呢? 当然不是,这就像不同的发动机有不同的最大功率一样,每种型号的的单片机都有最大能接受的晶体频率。先说51,它能够外接的最大晶体是24M,AVR单片机能够外接的最大晶振是16M。更高级的可编程芯片,例如FPGA,ARM,可以达到几百M,不过暂时不在我们的考虑范围之内。 第三个问题,为什么51最大
[单片机]
STM32F103C8T6——我用错了转换器,导致串口的收到的都是乱码
一、分析 我没有注意到STM32F103C8T6板子上没有【232转换芯片】,不能用【232/485转换器】 二、解决 正确的方法是 把【232/485转换器】换成【USB转TTL】就可以了
[单片机]
STM32F103 呼吸灯的实现
呼吸灯,也就是让灯的亮度随着时间的变化而变化,而要实现这个变化,我们需要通过占空比来完成,也就是是通过PWM来实现这个操作,只要我们发送的频率足够的快,因为人眼的视觉暂留的原因,人是不能看到灯灭掉的,所以只要脉冲的宽度越宽,可以看到的灯也就越亮。 下面就是通过STM32103这块板子的代码实现。 先写关于点灯的c文件 #include led.h #include stm32f10x.h #include delay.h //初始化GPIO端口 void Led_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCm
[单片机]
STM32F103RC USART2串口查询方式接收数据
现有一个小需求,使用STM32F1系列单片机做串口2的收发数据的功能,通过PC上的串口调试助手给单片机发一串数据,单片机收到数据后再给PC的串口调试助手发回去。 看似简单的功能,调试了好久才调好,记录一下供大家参考。 STM32使用USART2,对应单片机的PA1控制方向,PA2发送,PA3接收。 代码如下: z_hardware_usart2.h #ifndef __STM32F10X_H #define __STM32F10X_H #include stm32f10x.h #endif #ifndef __Z_UTIL_TIME_H #define __Z_UTIL_TIME_H #include z
[单片机]
STM32F103单片机学习笔记(1):用库新建工程和驱动IO口
一、用库新建工程 1、打开软件新建工程,project- new project 2、在工程中分别新建文件夹: Libraries用来装库函数,把库函数的包复制到这个的文件夹中; User用来装主函数和与注册中断的函数,main.c和system_stm32f10x.c放在这里面; Startup用来装启动文件,startup_stm32f10x_hd.s放在里面; CMSIS用来装系统文件,core_cm3.c放在里面; 3、点击,在工程下分别按照如下添加组和文件 4、点击 选择C/C++,添加头文件目录,我都把他们添加进来 5、接着再选择linker Debug设置下载方式 这里要注意一下,单片机在每次下载程
[单片机]
单片机晶振电路原理
晶振一般采用三端式(考毕兹) 交流等效振荡电路;实际的晶振交流等效电路中,其中Cv是用来调节振荡频率,一般用变容二极管加上不同的反偏电压来实现,这也是压控作用的机理;把晶体的等效电路代替晶体后。其中Co,C1,L1,RR是晶体的等效电路。 分析整个振荡槽路可知,利用Cv来改变频率是有限的:决定振荡频率的整个槽路C=Cbe,Cce,Cv三个串联后和Co并联再和C1串联。可以看出:C1越小,Co越大,Cv变化时对整个槽路的作用就越小。因而能 压控 的频率范围也越小。实际上,由于C1很小(1E-15量级),Co不能忽略(1E-12量级,几PF)。所以,Cv变大时,降低槽路频率的作用越来越小,Cv变小时,升高槽路频率的作用却越来越
[单片机]
stm32f103驱动SHT20( I2C )
以下为SHT10的参考资料:STM32 SHT10温湿度传感器的信号采集 SHT20技术手册 首先讲讲SHT10这款温室度传感器。SHT1x(包括SHT10,SHT11和SHT15)属于Sersirion温湿度传感器家族中的贴片封装系列。更之前我讲过的DHT11这款温湿度传感器相比,体积小了许多,特别适合用于产品中。SHT10温湿度传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件(文绉绉的),传感器内部有一个精度高达14为位的A/D转换器,适应串行接口电路实现无缝连接。该产品具有品质卓越、响应速度速度快,抗干扰能力强、性价比高等优点。 1、接口定义: SHT10的接口定义如下图所示:
[单片机]
宽范围高稳晶振频率稳定度测试系统的设计
0 引 言 高稳定度石英晶体谐振器(简称高稳晶振)是广泛应用于通讯、电子对抗、数传电台、计算机等电子信息产品的重要器件。高稳晶振的指标直接影响产品的可靠性,因此如何检测其性能是非常重要的。 代表性测量仪器是频稳测试系统(误差倍增器+多路开关)。其原理是将被测频率源的频率起伏△f进行倍频,然后再用频率计数器进行测频来计算准确度、老化率、日波动等指标。在频稳测试系统的设计中,信号源是一个重要的组成部分。其作用为产生高性能的输出频率(1~100 MHz)可设定的钟信号,与被测晶振的信号进行混频,输出差值在倍频环的范围内。目前,它广泛应用于信号源设计的直接数字频率合成(DDS)技术,具有输出频率范围宽,分辨力高,相位噪声低,易于实现
[测试测量]