wjandsq 发表于 2015-2-28 08:55:15

STM32F103基础例程说明,使用stm32cubemx v4.6.0自动生成工程包。

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

那就地方iv 发表于 2015-2-28 09:33:23

谢谢,楼主分享!

ZHONGLAN 发表于 2015-2-28 09:55:18

好,学到很多!谢谢分享!

沐紫 发表于 2015-2-28 10:18:43

谢谢!

feel-376797 发表于 2015-2-28 10:24:39

谢谢分享

zhangdaijin 发表于 2015-2-28 10:27:33

谢谢分享

sanx 发表于 2015-2-28 14:22:35

带FreeRTOS 的有木有

lkl0305 发表于 2015-2-28 20:42:40

多谢分享:):)

wjandsq 发表于 2015-6-8 08:32:55

http://www.daxia.com/wj/DX_LESSON/DX103_LESSON3.7z
http://www.daxia.com/wj/DX_LESSON/DX103_LESSON4.7z
页: [1]
查看完整版本: STM32F103基础例程说明,使用stm32cubemx v4.6.0自动生成工程包。