4440|0

1万

帖子

25

TA的资源

版主

楼主
 

尝试用Mbed开发SAMR21(1) [复制链接]

本帖最后由 dcexpert 于 2015-12-17 00:43 编辑

昨天,Mbed升级到了version 111,终于支持SAMR21G18A, SAMD21J18A, SAMD21G18A了。于是尝试了一下用Mbed编写SAM R21的程序。
在Mbed编译器中,SAM R21的模板依然是空的,没有任何参考例程。但是我们可以自己导入Mbed库,方法见前天的帖子《STM32F469 Discovery 评测之MBed闪灯》。


然后,在main.cpp中添加测试代码。
  1. #include "mbed.h"

  2. //DigitalOut LED_1(LED1);
  3. PwmOut LED_1(LED1);

  4. Ticker tmr;

  5. AnalogIn ain(PA06);

  6. Serial pc(USBTX, USBRX);

  7. void tmr_isr()
  8. {
  9.     //LED_1 = !LED_1;
  10.     if(LED_1 < 0.9)
  11.         LED_1 = LED_1 + 0.1;
  12.     else
  13.         LED_1 = 0;
  14. }

  15. uint16_t cnt = 0;
  16. int main()
  17. {

  18.     tmr.attach(&tmr_isr, 0.1);
  19.    
  20.     LED_1.period(0.001f);
  21.    
  22.     pc.printf("\nSAM R21 Mbed test.\r\n");

  23.     while(1) {
  24.         pc.printf("%d ain=%d\n", cnt++, ain.read_u16());
  25.         wait(1.0);
  26.     }
  27. }
复制代码


这段代码的主要功能是:
  • 通过PWM占空比,改变LED亮度
  • 在定时器中改变PWM
  • ADC采样PA06端口
  • 通过串口输出ADC结果


这样就把几个常用功能都测试了。

运行结果如下:


可以看到ADC的采样仍然不稳定,ADC波动很大,和以前使用AS6.2时的效果一样,不知道是不是还需要对ADC进行特别设置。

上面的程序是在Mbed编译器中编译的,因为SAM R21不支持U盘方式下载,所以使用了AS7的device programming下载程序到SAM R21开发板。Mbed编译器的程序可以导出为Keil的项目格式,但是不能导出为AS7的格式。导出为Keil格式后,并不能正常编译,编译后提示有3个错误:

.\build\SAMR21_blink.axf: Error: L6218E: Undefined symbol __initial_sp (referred from entry2.o).
.\build\SAMR21_blink.axf: Error: L6218E: Undefined symbol __heap_base (referred from malloc.o).
.\build\SAMR21_blink.axf: Error: L6218E: Undefined symbol __heap_limit (referred from malloc.o).


暂时没有找到原因,所以keil的程序文件就不上传了。



点赞 关注
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表