[原创] 【Nucleo心得】STM32L053 Nucleo直播学习——适应 mbed

zhimagod   2014-9-26 20:44 楼主
网速不好的孩子总是伤不起的…… 家里断网两天了,都是在公司抽空摆弄摆弄的,悲催啊 话说经过了两天的摸索(确实是摸索啊,好多东西不知道该去哪里找,资料都不知道该看哪一份),基本摸清楚了mbed的脾气。要说吧,这东西确实为开发节省了不少的时间和精力,很多东西不需要你去了解直接用就可以了。就像这个串口,根本不需要任何设置,直接拿来用,什么时钟啊,端口状态啊都不需要关心。不过像我这种硬件出身的孩纸玩起来就感觉很不适应了,又因为我之前没弄过C++,所以这方面也让我困惑了很久,很多东西总是转不过弯来。 现在我对mbed的理解就是它初期所有的功能都在class目录下面 class.PNG 像这些AD啊,DA啊IO啊什么的都做成了“类”,点进去之后每一个文件都有详细的介绍和用法说明。比如这个AD相关的“类”文件,看起来像是C中的函数声明 AnalogIn.PNG 这里是这个文件里所有可以被调用的函数和简单的说明 detil.PNG 接下来是一个小例子,每个函数的具体说明在下面 define.PNG 这是一个类似于声明的语句,意思是指定某一个引脚为模拟输入功能,其实这里都有一个"definition at line xx of file xxx"的说明,但是点击后会发现弹出提示说无法查看,需要包含什么东西(我没弄明白,谁知道怎么看么??) error.PNG 照猫画虎白弄了一个程序
  1. #include "mbed.h"
  2. //------------------------------------
  3. // Hyperterminal configuration
  4. // 9600 bauds, 8-bit data, no parity
  5. //------------------------------------
  6. Serial pc(SERIAL_TX, SERIAL_RX);
  7. AnalogIn VolIn(PC_4);
  8. AnalogOut VolOut(PA_4);
  9. DigitalOut myled(LED1);
  10. int Compare(float A,float B)
  11. {
  12. if(A>B)
  13. {
  14. if((A-B)<0.01)
  15. {
  16. return 0;
  17. }else
  18. {
  19. return 1;
  20. }
  21. }else
  22. {
  23. if((B-A)<0.01)
  24. {
  25. return 0;
  26. }else
  27. {
  28. return 1;
  29. }
  30. }
  31. }
  32. int main() {
  33. float VolGet,VolBack;
  34. //pc.baud(9600);
  35. pc.printf("Hello World !\n");
  36. while(1) {
  37. wait_ms(10);
  38. VolGet=VolIn.read();
  39. if(Compare(VolGet,VolBack))
  40. {
  41. VolBack=VolGet;
  42. VolOut=VolGet;
  43. pc.printf("Voltage Set is %f\n " , VolGet);
  44. //pc.printf("Voltage Get is %f V\n " , VolGet*3.3);
  45. myled = !myled;
  46. }
  47. }
  48. }
代码很少,没加注释 这样 当PA_4的输出电压会根据PC_4的输入来进行变化,变化的同时串口会打印出数据,引脚如下: pins.PNG 串口数据如下:由于端口什么都没接所以输出很不稳定啊~ 数据.PNG 另外这么片子的AD通道应该可以测量内部温度的,但是这个温度该怎么测有谁知道吗?望告之,感谢! 本帖最后由 zhimagod 于 2014-9-26 20:50 编辑
  • pins.PNG
_\ | /_ (0 T 0)   UUU

回复评论 (7)

呃……引脚图上错了,这个图上没有PC_4
再上一次
pins.PNG
_\ | /_ (0 T 0)   UUU
点赞  2014-9-26 20:49
学习下,感谢
昵称:灰小子
点赞  2014-9-26 22:58
引用: exiao 发表于 2014-9-26 22:58
学习下,感谢

共同学习,呵呵
_\ | /_ (0 T 0)   UUU
点赞  2014-9-27 07:23
这是一个类似于声明的语句,意思是指定某一个引脚为模拟输入功能,其实这里都有一个"definition at line xx of file xxx"的说明,但是点击后会发现弹出提示说无法查看,需要包含什么东西(我没弄明白,谁知道怎么看么??)   这里有说到这个: https://bbs.eeworld.com.cn/thread-448123-1-1.html 就是要把库转换一下。
点赞  2014-9-27 09:25
引用: damiaa 发表于 2014-9-27 09:25
这是一个类似于声明的语句,意思是指定某一个引脚为模拟输入功能,其实这里都有一个"definition at line xx ...

多谢版主指点!对我帮助很大!谢谢!
_\ | /_ (0 T 0)   UUU
点赞  2014-9-27 11:29
不喜欢用在线编译器,网速还没有达到一定的程序上,而且有时候用笔记本在无网的情况下也不能修改代码,伤心……
每个人心中都一片待开发的天空!
点赞  2014-9-30 16:49
引用: Veiko 发表于 2014-9-30 16:49
不喜欢用在线编译器,网速还没有达到一定的程序上,而且有时候用笔记本在无网的情况下也不能修改代码,伤 ...

用在线的好处就是不用安装破解编译软件了,省心。确实联网是让人头疼的问题,只适合联网比较方便的地方。
我是因为家里,公司都用wifi,所以用在线的没感觉有什么不方便。
不过话说现在上网很便宜了吧,10兆光纤,一年才三百多。
_\ | /_ (0 T 0)   UUU
点赞  2014-10-1 08:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复