完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
转
【五】timer 这一部分说Timer,应该说是时钟系统。当我们在设计程序用到时钟系统的时候,我们在用什么?事实上,相比意义不大的系统的时间点,我们更关注时间间隔——interval。举个栗子,我们希望有些任务可以在固定时间间隔发生;或者后续任务在前面任务发生后的一定时间间隔后发生;或者根据两个任务发生的时间间隔,系统做出下一步判断等。 mbed提供了三个对象用来完成和时间相关的功能: 1. Timer,用来给系统计时,包括: Timer();//构造函数,实例化Timer对象 void start();//开始计时 void stop();//停止计时 void reset();//重新计时 float read(); //读取计时开始后,即从执行start()后过去的时间,单位是秒 int read_us(); //读取计时开始后过去的时间,单位是微秒 2. Ticker,用来在固定时间间隔执行特定函数; 3. Timeout,用来在给定的时间执行特定函数(倒计时执行,相当于只执行一次的Ticker) 由于2和3基本类似,就Ticker的使用方法描述: Ticker(); //构造函数,实例化Ticker对象,可以隐式调用 void attach(void (*fptr)(void), float t); //设定每t秒的时间间隔,需要执行的函数,用函数指针作为参数 void attach_us(void (*fptr)(void), unsigned int t); //同理,设定每t微妙的时间间隔 对于开始说的栗子,如果是固定时间间隔,我们可以使用Ticker: 每隔0.5秒,led闪烁一次:
如果是希望根据一段时间间隔的长度进行操作: 距离上次led闪烁的时间超过2s,再次闪烁
【六】UART communication Uart(Universal Asynchronous Receiver/Transmitter)通用异步收发器。用来进行异步串口通信的设备,全双工方式。发送“TX”,接受“RX”,地陷“GND”,异步总线,没有时钟同步线。硬件实现上有RS-232通信接口和USB转串口通信接口。 UART将传输数据的每个字符以串行方式一位接一位的传输。UART首先将接收到的并行数据转换成串行数据(parallel-to-serial converter)来传输。从一个低位起始位开始,后面是5~8个数据位,一个可用的奇偶位和一个或几个高位停止位。在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。通过波特率Baud来控制传送数据的速率(Baud本身已是速率,所以不需要写成 Baud Rate,概念上不同与比特率)。 mbed API中,使用Serial对象收发数据: //构造函数定义: Serial(PinName tx, PinName rx, const char *name=NULL); //设置波特率,即一秒钟传输实际数据的比特数: void baud(int baudrate); //设置传输格式:比特数,奇偶校验,停止位(默认8比特,无奇偶校验位,1位停止位): void fomat(int bits=8, Parity parity=SerialBase::None, int stop_bits=1); // 设置 UART中断,串口只要有数据的时候通知程序,执行中断函数,IrqType决定了是哪个Serial Interrupt, 举例来说,RxIrq是接收数据中断,TxIrq是发送数据中断(传送Buffer空): void attach(void (*fptr)(void), IrqType type=RxIrq); int getc(); //读取一个字符 int putc(int c);//发送一个字符 int readable();//判断是否有数据到达 int prinf(const char *fomat, ...);//格式化Uart的输出,参数等同标准C的printf int scanf(const char *fomat, ...); //中断方式读取数据: Serial pc(SERIAL_TX,SERIAL_RX); DigitalOut led(LED1); void ECHO_UART() { pc.putc(pc.getc()); //输入回显
Serial的其他使用,可以参考Serial.h SerialBase.h. |
|
相关推荐
|
|
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11790 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 18:52 , Processed in 0.869686 second(s), Total 62, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号