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