串口接收的思路

发布者:eta17最新更新时间:2017-01-06 来源: eefocus关键字:串口接收  avr 手机看文章 扫描二维码
随时随地手机看文章

在avr论坛上看到的 关于串口接收的方法  对项目有点帮助就记录下了      

感谢网友 AVRBBS 提供的方法

static unsigned char i;//定义一个静态变量,用于记录接收到那一个字节了。
switch (i) {
  case:0
    if (udr == 0xAA)  //收到第一个数据,判断是否为0XAA启动字节。
       i = i + 1;           //同步成功,增加变量 i ,进入下一步操作。
    break;
  case:1
     在这一步取第符长度,并把它保存在你定义的接收数组里面,在后面接收数据的时候用的到。
  case:2
     接收命令字节,存入到数组里面。
  。。。。。。。上面是大概流程,供你参考学习,下面的具体程序需要你自己完成。
  case:7
      判断帧停止位(0x55)、判断前一位校验是否正确,如果两项都成功了,那么做下面两件事:
      1、根据你的情况作出一定动作,或者打上某个标志,以标志你接收完成。
      2、记得把变量 i = 0复位。


关键字:串口接收  avr 引用地址:串口接收的思路

上一篇:串口接收的思路
下一篇:AVR 中定义数据和命令输入方法

推荐阅读最新更新时间:2024-03-16 15:29

学习AVR(七)通用寄存器堆
通用寄存器堆(General Purpose Register File) 优化的寄存器堆用于AVR加强型RISC指令组。为了实现要求的性能和灵活性,寄存器堆支持如下的输入/输出方案: 一个8位输出操作数和一个8位结果输入 两个8位输出操作数和一个8位结果输入 两个8位输出操作数和一个16位结果输入 一个16位输出操作数和一个16位结果输入 下图所示为AVR CPU中通用工作寄存器的结构。 寄存器堆中大部分的指令运算都可以直接访问所有寄存器,而且大多数指令都是单周期指令。
[单片机]
学习<font color='red'>AVR</font>(七)通用寄存器堆
51单片机实现判断数据头来接收一串数据的串口通用程序框架
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200710 ---- @ModifiedTime: 20200710 ----
[单片机]
51单片机实现判断数据头来<font color='red'>接收</font>一串数据的<font color='red'>串口</font>通用程序框架
AVR单片机(学习ing)—(二)、ATMEGA16的中断系统—01
二、ATMEGA16的中断系统 二—(01)、两路防盗系统试验 上一篇已经说了,这款单片机就是控制所谓的寄存器来控制单片机的相关功能(之所以比51强大,就是集合了这些还有好几种总线,会在下面的学习中遇到的,呵呵 。 好了,不废话了,显示它所应用到的寄存器: (这里先介绍一下下,呵呵 ,便于理解吗~~) 外部中断通过引脚INT0、INT1和INT2触发(注意,这是引脚,就是D口引脚的第二功能啦)。只要使能了中断,即使引脚INT0到2配置为输出,只要电平发生了合适的变化(相信大家都知道,咱们触发中断是通过外部信号的输入来触发的,这里的意思是,如果我们设置引脚为输出,呵呵,不管你怎么设置的,只要引脚变化,然后就是和你寄存器配置的变化合适
[单片机]
<font color='red'>AVR</font>单片机(学习ing)—(二)、ATMEGA16的中断系统—01
AVR定时/计数器应用设计
定时/计数器(Timer/counter)是单片机芯片中最基本的外围接口,它的用途非常广泛,常用于测量时间、速度、频率、脉宽、提供定时脉冲信号等。相对于一般8位单片机而言,AVR不仅配备了更多的定时/计数器接口,而且还是增强型的,功能非常强大。ATmega128一共配置了2个8位和2个16位,共4个定时/计数器,本小节重点对它的一些增强功能的应用做基本的介绍。 5.9.1 预分频器 定时/计数器最基本的功能就是对脉冲信号计数,当计数器计满后(8位为255,16位为65535),再来一个脉冲它就翻转到0,并产生中断信号。同其他单片机类似,AVR的定时/计数器的计数脉冲可以来自外部的引脚,也可以由从内部系统时钟获得;但AVR的定
[单片机]
AVR 单片机与GCC 编程之存储器操作
AVR 系列单片机内部有三种类型的被独立编址的存储器,它们分别为:Flash 程序存储器、内部SRAM 数据存储器和EEPROM 数据存储器。 Flash 存储器为1K~128K 字节,支持并行编程和串行下载,下载寿命通常可达10,000 次。 由于AVR 指令都为16 位或32 位,程序计数器对它按字进行寻址,因此FLASH 存储器按字组织的,但在程序中访问FLASH 存储区时专用指令LPM 可分别读取指定地址的高低字节。 寄存器堆(R0~R31)、I/O 寄存器和SRAM 被统一编址。所以对寄存器和I/O 口的操作使用与访问内部SRAM 同样的指令。其组织结构如图2-1 所示。 图2-1 AVR SRAM
[单片机]
AVR基础知识:ATMEGA的SPI总线 - 第2部分
在第1部分中,我们在AVR ATMEGA328P微控制器上已经设置好SPI总线。现在我们就可以开始使用SPI了。 设置相关引脚 在开始之前,我们需要在AVR上设置SPI总线的引脚(在主机模式下使用)。我在这里使用的是ATMEGA328P,所以需要定义一些宏来使代码变得更清晰。如果您使用不同的微控制器,则可以根据您的需要进行调整。 #define SPI_SS_GPIO PB2 #define SPI_SS_PORT PORTB #define SPI_SS_DDR DDRB #define SPI_MOSI_GPIO PB3 #define SPI_MOSI_PORT PORTB #defin
[单片机]
<font color='red'>AVR</font>基础知识:ATMEGA的SPI总线 - 第2部分
基于AVR单片机的高精度频率调节器
1?引言? 在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。 Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。? 本文
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved