用户工具

站点工具


icore3l_15

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
icore3l_15 [2020/11/11 10:23]
zgf
icore3l_15 [2020/11/11 10:26] (当前版本)
zgf
行 122: 行 122:
   {   {
      ​if(dst_buffer[i] != src_buffer[i]) ​ //​测试失败      ​if(dst_buffer[i] != src_buffer[i]) ​ //​测试失败
- {+     {
          ​while(1)          ​while(1)
-    {+  {
            ​HAL_Delay(500);​            ​HAL_Delay(500);​
            ​LED_RED_ON;​            ​LED_RED_ON;​
            ​HAL_Delay(500);​            ​HAL_Delay(500);​
            ​LED_RED_OFF;​            ​LED_RED_OFF;​
-        ​}+         }
      ​}  ​      ​}  ​
   }   }
行 188: 行 188:
 DMA_TypeDef;​ DMA_TypeDef;​
 </​code>​ </​code>​
 +=== 4.DMA句柄结构体DMA_HandleTypeDef ===
 +HAL库在DMA_TypeDef的基础上封装了一个结构体DMA_HandleTypeDef,定义如下:
 +<code c>
 +typedef struct __DMA_HandleTypeDef ​
 +
 +  void *Instance; /* 注册基地址 */ 
 +  DMA_InitTypeDef Init; /* DMA通讯参数 */ 
 +  HAL_LockTypeDef Lock; /* DMA锁定对象 */ 
 +  __IO HAL_DMA_StateTypeDef State; /* DMA传输状态 */ 
 +  void *Parent; /* 父对象状态 */ 
 +  void (* XferCpltCallback)( struct __DMA_HandleTypeDef * hdma); ​
 +  /* DMA传输完成回调 */ 
 +  void (* XferHalfCpltCallback)( struct __DMA_HandleTypeDef * hdma); ​
 +  /* DMA半传输完成回调 */ 
 +  void (* XferM1CpltCallback)( struct __DMA_HandleTypeDef * hdma); ​
 +  /* DMA传输完成Memory1回调 */ 
 +  void (* XferM1HalfCpltCallback)( struct __DMA_HandleTypeDef * hdma); ​
 +  /* DMA传输半完成Memory1回调 */ 
 +  void (* XferErrorCallback)( struct __DMA_HandleTypeDef * hdma); ​
 +  /* DMA传输错误回调 */ 
 +  void (* XferAbortCallback)( struct __DMA_HandleTypeDef * hdma); ​
 +  /* DMA传输中止回调 */ 
 +  __IO uint32_t ErrorCode; /* DMA错误代码 */ 
 +  uint32_t StreamBaseAddress;​ /* DMA流基址 */ 
 +  uint32_t StreamIndex;​ /* DMA流索引 */ 
 +  DMAMUX_Channel_TypeDef *DMAmuxChannel;​ /* DMAMUX通道基地址 */
 +  DMAMUX_ChannelStatus_TypeDef *DMAmuxChannelStatus; ​
 +  /* DMAMUX通道状态基地址 */ 
 +  uint32_t DMAmuxChannelStatusMask;​ /* DMAMUX通道状态掩码 */
 +  DMAMUX_RequestGen_TypeDef *DMAmuxRequestGen;​ /* DMAMUX请求生成器基地址 */
 +  DMAMUX_RequestGenStatus_TypeDef *DMAmuxRequestGenStatus;​
 +  /* DMAMUX请求生成器状态地址 */ 
 +  uint32_t DMAmuxRequestGenStatusMask;​ /* DMAMUX请求生成器状态掩码 */ 
 +}DMA_HandleTypeDef;​
 +</​code>​
 +==== 五、实验步骤 ====
 +  - 把仿真器与iCore3L的SWD调试口相连(直接相连或者通过转接器相连);
 +  - 把iCore3L通过Micro USB线与计算机相连,为iCore3L供电;
 +  - 打开Keil MDK 开发环境,并打开本实验工程;
 +  - 烧写程序到iCore3L上;
 +  - 也可以进入Debug 模式,单步运行或设置断点验证程序逻辑。
 +==== 六、实验现象 ====
 +实验成功红色LED灯常亮,实验失败红色LED灯闪烁。
icore3l_15.1605061408.txt.gz · 最后更改: 2020/11/11 10:23 由 zgf