DX103例程1、例程2的硬件仿真及设置说明 1.硬件仿真时,Device可以选择STM32F103ZET6,这个型号,MDK-ARM设计的调试对话框比较完整。 On-chip Flash容量在128K以下的,采用STM32F10x Med-density Flash 编程算法; On-chip Flash容量在256K-512K的,采用STM32F10x High-density Flash 编程算法; STM32F103VE和STM32F103ZE的Flash 编程算法是一样的。 (1) 选择ROM仿真,程序下载到Flash区域,这是正常的工作区域。这时,可以选择STM32F103ZE, 也可以选择STM32F103VE。 (2) 选择RAM仿真,程序下载到RAM区域,掉电重启,程序则丢失,这种方法仅用于调试, 避免反复擦除FLASH,导致FLASH损坏。 选择STM32F103VE时,如需显示更多的对话框,Dialog DLL的参数要改为TARMSTM.DLL(原为TCM.DLL), Parameter的参数需改为-pSTM32F103VE(原为-pCM3)。 2.如果是ULINK2,Debug和Utilities选项都不需要修改,其它型号仿真器需要对这两项进行设置。 DX103例程1: 本例程由stm32cubemx v4.6.0自动生成,手工添加的代码如下: (1) 在 main.c 中,增加变量声明和用户代码 __IO uint16_t TIM2_Cnt; HAL_TIM_Base_Start_IT(&htim2); // 打开更新中断请求,然后启动定时器 (2) 在 stm32f1xx_it.c 中,增加变量声明和用户代码 extern __IO uint16_t TIM2_Cnt; if(++TIM2_Cnt >=100){ TIM2_Cnt = 0; HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0); // 以200ms的周期,使LED闪烁 } 2015.1.31 Edit by wjandsq@163.com QQ: 9318844 入门教程1,以截图说明了如何利用STM32Cube工具,从零开始建立一个MDK-ARM工程。 DX103例程2: 本例程由stm32cubemx v4.6.0自动生成,增加了标准KEY检测和KEY处理模块,以及串口的DMA发送。 标准KEY检测有按下,粘滞键、弹起检测,分别对应三个标志,使用结构体和宏定义,可以避免 书写重复代码时发生低级错误。 按键扫描使用了一个定时器的中断标志,中断复位代码除了中断标志外,其它都是工具自动生成的。 按键处理调用了串口的DMA发送,这个也是需要初学者了解的,这种方式不占用系统资源。 如果串口正在发送中,DMA模块比较忙,需要后续进一步处理,按键的结构体特别定义了这样一个标志。 也可以把按键的结构体理解为一个对象,但这里是C语言,使用宏,远比C++效率高。 入门教程2,以截图说明了如何在RAM中调试程序代码,包括中断向量偏移地址的重映射。 2015.2.27 Add by wjandsq@163.com QQ: 9318844 DX103例程1、例程2 工程包下载(含ioc文件): http://www.daxia.com/wj/DX_LESSON/DX103_LESSON1.7z http://www.daxia.com/wj/DX_LESSON/DX103_LESSON2.7z |
【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
万利STM32F107VC 原理图
STM32F103 ADC多通道检测必须要DMA吗?
【官方例程】STM32F107以太网官方例程
http://www.daxia.com/wj/DX_LESSON/DX103_LESSON4.7z