UART收发的程序[参照].pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一般教科书上提供的 UART 收发的程序往往是一段采用轮循 (Polling )方式完成收发的简单代码。但对于高速的 AVR 来讲,采 用这种方式大大降低了 MUC 的效率。在使用 AVR 时,应根据芯片 本身的特点(片内大容量数据存储器 RAM ,更适合采用高级语言编 写系统程序),编写高效可靠的 UART 收发接口(低层)程序。下 面是一个典型的 USART 的接口程序。 (下面是 CodeVisionAVR 修改 成 WINAVR 后的程序 ,原来的程序请看底下给出的链界 ,在 / 的论坛里 ) //usart.h // 常量定义 #define BAUDRATE 9600 // 波特率 //#define F_CPU 4000000 // 晶振频率 4.0MHz #define RXB8 1 #define TXB8 0 #define PE 2 //M16 //#define UPE 2 //M128 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 // 宏定义 #define FRAMING_ERROR (1FE) #define PARITY_ERROR (1PE) //M16 //#define PARITY_ERROR (1UPE) //M128 #define DATA_OVERRUN (1OVR) #define DATA_REGISTER_EMPTY (1UDRE) #define RX_COMPLETE (1RXC) // USART Receiver buffer // 全局变量 , 会在中断服务程序中被修改,须加 volatile 限定,不要 就会出错啦 #define RX_BUFFER_SIZE 16 // 接收缓冲区大小, 可根据 需要修改 volatile char rx_buffer[RX_BUFFER_SIZE]; // 接收缓冲区, 为 char 型变量组成的数组,该数组构成环形队列,个数为 RX_BUFFER _SIZE volatile unsigned char rx_wr_index,rx_rd_index,rx_cou nter; // This flag is set on USART Receiver buffer overflow volatile char rx_buffer_overflow; // 接收缓冲区溢出标志 // USART Transmitter buffer #define TX_BUFFER_SIZE 16 volatile char tx_buffer[TX_BUFFER_SIZE]; volatile unsigned char tx_wr_index,tx_rd_index,tx_cou nter; // 函数声明 char get_c( void ); void put_c( char c); void put_s( char *ptr); void init_USART( void ); //usart.c #include avr/io.h #include stdio.h #include avr/interrupt.h #include usart.h /* 接收

文档评论(0)

肖四妹学教育 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档