在线时间177 小时
UID2086045
ST金币0
蝴蝶豆0
注册时间2014-4-15
金牌会员
- 最后登录
- 2020-7-23
|
a0a.1 32b0c
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
|
|