Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20021
  • 博文数量: 7
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-09 19:14
文章分类

全部博文(7)

文章存档

2015年(7)

分类: C/C++

2015-09-29 22:05:55

    串口在嵌入式设备中无疑是排在第一位的调试、输入输出接口!

    STM32中的串口应用起来还是挺顺手的,代码量不太复杂。但是一般用户的设计都是使用最基本的功能没有完全发挥串口硬件的功能,使得串口这个低速设备,严重影响了stm32的性能。一般情况下,使用串口的发送会浪费掉CPU的大量时间,到底有多大,你自己可以算算。根据波特率去计算发送时间,然后看着短时间cpu能执行多少条指令。    

    为了解决这个问题eBox也是下了很大功夫,使用DMA来实现异步执行,使得即使在没有操作系统的情况下也大大提高了单片机的效率。

     多说无益,直接看代码                 

点击(此处)折叠或打开

  1. //STM32 RUN IN eBox


  2. #include "ebox.h"


  3. void setup()
  4. {
  5.     eBoxInit();
  6.     uart1.begin(9600);
  7.     
  8. }


  9. int main(void)
  10. {
  11.     setup();
  12.     while(1)
  13.     {
  14.         uart1.printf("hello World !\r\n");
  15.         delay_ms(1000);
  16.     }


  17. }
怎么突然觉得串口设备的是用如此简单。。。寄存器呢?官方固件库呢?统统抹杀掉!用户不需要的统统不需要关心,只需要配置一个波特率,初始化便完成了。
uart1怎么来的?看这里,看这里USART uart1(USART1,&PA9,&PA10);。 在object.cpp中已经创建好了对象,直接调用初始化就可以用了。
太方便了!!                                                                                                                                                                                                                                                                         
                                                  

新浪微博:eBox生态圈
微博主页: />
关注作者新浪微博及时查看更新


阅读(735) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~