2867|2

1371

帖子

6

TA的资源

版主

楼主
 

MM32F103开发板评测(2) - 工程初探 [复制链接]


我用的是开发环境是KEIL MDK,版本号是uVision V5.24.2.0,目前最高的版本应该是5.25.0。关于MDK的安装与建立工程这里就不再赘述了,网上有一大把的文章,写重复也没有啥意义。我是直接在例程上改的工程。
我手里的开发板处理器是MM32F103,原例程目录太深,我把工程目录拷了出来,所以MDK中,关于头文件的包含路径也要做相应的修改,同时根据自己的习惯,对MDK做了一些处理。MDK的整体配置如下所示:

图1 选择正确的元件

图2 关于ROM与RAM的选择
这一页暂时按默认选项来设置,后面有会专门抽空来研究这款MCU的内存的说明,另外,我勾选上了“Use Micro LIB”这个选项。关于这个选项简单说明一下:
“Use Micro LIB”是MDK自带的一处简易的库,例如在用到printf这个函数时,就会从串口1输出字符串,直接默认定向到串口1
Microlib是缺省C库的备选库,它用于必须在极少量内存环境下运行的深层嵌入式应用程序,这些应用程序不在操作系统中运行。Microlib不会尝试成为符合标准的ISO库
Microlib进行了高度优化以使代码变得很小,它的功能比缺省C库少,并且根本不具备某些ISO C特性,某些库函数的运行速度比较慢,例如memcpy()
图3 输出选项中,一定要自己建立一个文件夹用来保存
MDK修改了那么多版本,居然不提供自己建立文件夹,也真够蛋疼。

图4 关于list文件,同样建个文件夹,方便工程管理与清除

图5 因为对工程文件夹进行了修改,所以头文件路径要进行修改

图6 ASM暂时用默认选项即可

图7 Linker选项中也用默认的选项即可

图8 选择自己用的是仿真器,我用的是ulink

图9 选择下载程序用的驱动
为了查看代码方便,还是建立一个sourceInsight工程吧,程序员必备的查看代码的神器,如果没用过sourceInsight的同学可以面壁去了^_^

10 建立的sourceInsight工程
这次研究的是UART_DMA的工程,简单的看了一下代码,与STM32F的工程比较类似,不过例程写的有点不符合我的风格,所以我简单的修改了一下,加上了注释,如下所示:
  1. /*********************************************************************************
  2. * Copyright (C) 2000-2018 Mark Xu Work Studio,All Rights Reserved.
  3. *
  4. * 文件名称 : main.c
  5. *
  6. * 文件描述 : 关于main相关的一些API
  7. *
  8. * 文件作者 :Mark Xu
  9. *
  10. * 文件备注 :None
  11. ---------------------------------------------------------------------------------
  12. * 修改记录 :
  13. *
  14. *   修改日期 : xxxx/xx/xx/     xx:xx
  15. *
  16. *   修改人员 :xx xx
  17. *
  18. *   修改内容 : 1) ...
  19. **********************************************************************************/
  20. #define MAIN_IMPLATION

  21. #include "stdint.h"
  22. //#include "delay.h"
  23. #include "sys.h"
  24. #include "uart.h"
  25. #include "dma.h"


  26. /*********************************************************************************
  27. * 常量声明
  28. **********************************************************************************/
  29. // 串口波特率
  30. #define UART_BUAD_RATE_DEFAULT                 (115200)
  31. // 发送缓冲 大小
  32. #define TEXT_LENTH                                                      (9)



  33. /*********************************************************************************
  34. * 本地变量声明
  35. **********************************************************************************/
  36. static int32_t TEXT_TO_SEND[] = {'1','2','3','4','5','6','7','8','9'};

  37. static uint8_t SendBuff[(TEXT_LENTH+2)*100];


  38. /*********************************************************************************
  39. * 函数名称 : Board_Init
  40. *
  41. * 函数描述 : 板子接口初始化
  42. *
  43. * 入口参数 : None
  44. *
  45. * 出口参数 : None
  46. *
  47. * 函数备注 : None
  48. ***********************************************************************************/
  49. void Board_Init(void)
  50. {
  51. //    // 延时函数初始化
  52. //        delay_init();
  53.         // 串口初始化为115200
  54.         uart_initwBaudRate(UART_BUAD_RATE_DEFAULT);

  55.   //DMA1通道4,外设为串口1,存储器为SendBuff,长(TEXT_LENTH+2)*100.
  56.         MYDMA_Config(DMA1_Channel4,(u32)&UART1->TDR,(u32)SendBuff,(TEXT_LENTH+2)*10);
  57. }


  58. /*********************************************************************************
  59. * 函数名称 : Uart_Send_Test
  60. *
  61. * 函数描述 : 串口测试
  62. *
  63. * 入口参数 : None
  64. *
  65. * 出口参数 : None
  66. *
  67. * 函数备注 : 测试专用,死等传输完成
  68. ***********************************************************************************/
  69. void Uart_Send_Test(void)
  70. {
  71.           uint8_t t = 0;

  72.           printf("\r\nDMA DATA:\r\n");

  73.           // 填充ASCII字符集数据
  74.     for(uint16_t i=0; i<(TEXT_LENTH+2)*100; i++)
  75.     {
  76.                           // 加入换行符
  77.         if(t >= TEXT_LENTH)
  78.         {
  79.             SendBuff[i++] = 0x0d;
  80.             SendBuff[i]   = 0x0a;
  81.             t = 0;
  82.         }
  83.         else
  84.                                 {
  85.                                         // 复制TEXT_TO_SEND语句
  86.                 SendBuff[i]=TEXT_TO_SEND[t++];
  87.                                 }
  88.     }

  89.                 // 使能uart1 DMA
  90.     UART_DMACmd(UART1,UART_DMAReq_EN,ENABLE);
  91.                 // 开始一次DMA传输
  92.     MYDMA_Enable(DMA1_Channel4);


  93.     //等待DMA传输完成
  94.     while(1)
  95.     {
  96.                           // 等待通道4传输完成
  97.         if(DMA_GetFlagStatus(DMA1_FLAG_TC4) != RESET)
  98.         {
  99.                                           // 清除通道4传输完成标志
  100.             DMA_ClearFlag(DMA1_FLAG_TC4);
  101.             break;
  102.         }
  103.     }

  104.     printf("\r\nUART DMA TEST OK!\r\n ");
  105. }

  106. /*********************************************************************************
  107. * 函数名称 : main
  108. *
  109. * 函数描述 : 主程序入口
  110. *
  111. * 入口参数 : None
  112. *
  113. * 出口参数 : None
  114. *
  115. * 函数备注 : None
  116. ***********************************************************************************/
  117. int main(void)
  118. {
  119.           // 硬件接口初始化
  120.     Board_Init();

  121.           // 测试串口发送
  122.           Uart_Send_Test();
  123.     while(1);
  124. }



复制代码




这是我的风格

好吧,这编辑器不太给力,还是看附件的内容吧
1_MM32F103_Uart - 2018年10月23日 141724.rar (3.42 MB, 下载次数: 14)

此内容由EEWORLD论坛网友懒猫爱飞原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自电机控制论坛

最新回复

楼主最后一个图用的是什么软件?  详情 回复 发表于 2018-10-23 21:12
点赞 关注(1)
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 
 

回复
举报

193

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
楼主最后一个图用的是什么软件?
此帖出自电机控制论坛

点评

sourceInsight,添加了自己的配置 截图不是这个工程中的截图,这个工程中没有用到看门狗,  详情 回复 发表于 2018-10-24 08:20
 
 
 

回复

1371

帖子

6

TA的资源

版主

板凳
 
在学习的路上 发表于 2018-10-23 21:12
楼主最后一个图用的是什么软件?

sourceInsight,添加了自己的配置
截图不是这个工程中的截图,这个工程中没有用到看门狗,
此帖出自电机控制论坛
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表