阅读flash: 芯片内部存储器flash 操作函数我的理解——对芯片内部flash 进行操作的函数,包括读取,状态,擦除,写入等等,可以允许程序去操作flash 上的数据。 基础应用1,FLASH 时序延迟几个周期,等待总线同步操作。推荐按照单片机系统运行频率,0—24MHz 时,取Latency=0;24—48MHz 时,取Latency=1;48~72MHz 时,取Latency=2。所有程序中必须的 用法:FLASH_SetLatency(FLASH_Latency_2); 位置:RCC 初始化子函数里面,时钟起振之后。 基础应用2,开启FLASH 预读缓冲功能,加速FLASH 的读取。所有程序中必须的 用法:FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); 位置:RCC 初始化子函数里面,时钟起振之后。 3、阅读lib:调试所有外设初始化的函数。 我的理解——不理解,也不需要理解。只要知道所有外设在调试的时候,EWRAM 需要从这个函数里面获得调试所需信息的地址或者指针之类的信息。 基础应用1,只有一个函数debug。所有程序中必须的。 用法: #ifdef DEBUG debug(); #endif 位置:main 函数开头,声明变量之后。 4、 阅读nvic:系统中断管理。 我的理解——管理系统内部的中断,负责打开和关闭中断。 基础应用1,中断的初始化函数,包括设置中断向量表位置,和开启所需的中断两部分。所有程序中必须的。 用法: void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; //中断管理恢复默认参数 #ifdef VECT_TAB_RAM //如果 C/C++ Compiler\Preprocessor\Defined symbols 中的定义了VECT_TAB_RAM(见程序库更改内容的表格) NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //则在 RAM 调试 #else //如果没有定义 VECT_TAB_RAM NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);//则在 Flash 里调试 #endif //结束判断语句 //以下为中断的开启过程,不是所有程序必须的。 //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC 优先级分组,方式。 //注:一共 16 个优先级,分为抢占式和响应式。两种优先级所占的数量由此代码确定,NVIC_PriorityGroup_x 可以是 0、1、2、3、4,分别代表抢占优先级有1、2、4、8、16 个和响应优先级有16、8、4、2、1 个。规定两种优先级的数量后,所有的中断级别必须在其中选择,抢占级别高的会打断其他中断优先执行,而响应级别高的会在其他中断执行完优先执行。 //NVIC_InitStructure...