[资料] 【eBox生态圈】连载六:hello world!同样的经典,品味出不一样的味道!

[复制链接]
发表于 2015-11-27 18:51:16   2264 查看 4 回复 显示全部楼层 倒序浏览
分享


串口在嵌入式设备中无疑是排在第一位的调试、输入输出接口!STM32中的串口应用起来比较简单,代码量不太复杂。但是一般用户的设计都是使用最基本的功能没有完全发挥串口硬件的功能,使得串口这个低速设备,严重影响了32的性能。一般情况下,使用串口的发送会浪费掉CPU的大量时间,到底有多大,你自己可以算算。

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

此处讲解下异步执行的概念,当用户需要通过串口发送数据的时候,用户只需要将数据填充到发送缓冲区(指DMA发送缓冲区),然后开启DMA发送。MCU的任务就完成了,不用做任何等待就可以继续执行其他任务。这是,真正的发送是有DMA和串口自动配合完成字符串的发送。这就是简单的异步执行的概念。

此例程用到USART类成员函数
  1. class USART
  2. {
  3.         public:
  4.                      USART(USART_TypeDef *USARTx,GPIO *tx_pin,GPIO *rx_pin);
  5.                      void begin(uint32_t baud_rate);
  6.                      void printf(const char *fmt,...);            
复制代码
此处没有将所有的成员函数列出,只列出了关键方法。详细内容请查看下面的附件。
应用实例:
  1. #include "ebox.h"
  2. void setup()
  3. {
  4.     ebox_init();
  5.     uart1.begin(9600);        
  6. }
  7. int main(void)
  8. {
  9.     setup();
  10.     while(1)
  11.     {
  12.         uart1.printf("hello World !\r\n");
  13.         delay_ms(1000);
  14.     }
  15. }
复制代码

好清晰的赶脚啊!uart1对象在哪里创建的呢?USART uart1(USART1,&PA9,&PA10);这是串口1对象的创建。在object.cpp中。声明在eBox.h中。


串口详解:
06【eBox生态圈】连载六:串口详解.rar (26.38 KB, 下载次数: 34)

等待验证会员

发表于 2015-12-4 16:49:33  
谢谢分享               谢谢分享       分                分
谢谢     谢谢分享              谢谢分享        享                享
谢谢分 谢谢分享              谢谢分享        谢                谢
谢谢分 谢谢分享                               谢       谢
谢谢分谢谢分享                         谢                 谢
         谢谢谢谢                    分                               分
             谢谢                   享                                     享
回复

点赞 举报

发表于 2015-12-7 13:41:49  
好好好好好好好好好好好好好好好好好好
回复

点赞 举报

实习生

发表于 2015-12-13 15:15:33   来自手机
程序感觉有点像Arduino的写法,但又和C又有类似之处
回复

点赞 举报

等待验证会员

发表于 2015-12-18 18:25:56   来自发烧友APP
回复

点赞 举报

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区