新疆喜乐彩玩法

STM8S103之串口中断接收

2019-11-26来源: eefocus关键字:STM8S103  串口  中断接收

新疆喜乐彩玩法本文以STM8S103F3P6编程为例,介绍STM8S103F3P6串口中断接收。


电脑平台:Windows7 64位旗舰

编译软件:IAR

硬件平台:STM8S103F3P6


1.系统时钟初始化为内部16M


CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);    //时钟   初始化时钟为1分频 16M   2分频8M


2.初始化串口


  UART1_DeInit();

  UART1_Init((u32)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);

新疆喜乐彩玩法  

  UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);

 

  UART1_Cmd(ENABLE);

  enableInterrupts(); 

 


3.编写主函数


void main(void)

{

  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

  Init_UART1();

  enableInterrupts(); 

 /* Infinite loop */

  while (1)

  {

    if(flagpacker)

    {

      flagpacker = 0;

      

      for(unsigned char num = 0; num < length;num++)

        Send(Rxpacker[num]);

    }

  }

}

 


4.编写中断服务函数


unsigned char flagpacker;   //全局变量    是否完整接收一个数据包  

unsigned char Rxpacker[255];    //全局变量    完整数据包 

unsigned char length;    //数据长度

 INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)

 {

    /* In order to detect unexpected events during development,

新疆喜乐彩玩法       it is recommended to set a breakpoint on the following instruction.

    */

 unsigned char RxBuf;                                             //临时接收  

  static unsigned char RxData[255];//接收数据缓存区  

  static unsigned char count;                                     //串口接收数据长度  

  static unsigned char rec;  //  判断是否正在接收数据

   UART1_ClearITPendingBit(UART1_IT_RXNE);

   RxBuf = UART1_ReceiveData8();

   

  if(RxBuf == (0xcc))  //帧头

  {  

    rec= 1;  

    count = 0;  

    flagpacker = 0;  

    return ;  

  }  

  if(RxBuf  == (0xcd))  //帧尾

  {  

    rec= 0;  

    //此处可以添加校验码  

    length = count;

    for(unsigned char i = 0; i

新疆喜乐彩玩法    {  

      Rxpacker[i] =RxData[i];  

    }  

    flagpacker = 1;//告诉系统已接收一个完整的数据包   

    return ;  

  }  

新疆喜乐彩玩法  if(rec)                                              //判断是否处于接收状态  

  {  

    RxData[count++] = RxBuf;  

  }    

 }

关键字:STM8S103  串口  中断接收 编辑:什么鱼 引用地址:http://news.zjgsmm.com/mcu/ic481148.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM8S103之tim4普通定时器
下一篇:STM8S IO口基本输入输出

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM8S程序移植心得
大部分的STM8S芯片是可以兼容的 其中有很多是有共同之处,但是也有不同之处,比如有些芯片有串口1有些芯片没有串口1却又串口2;这一点仍然需要去认真的看看芯片数据手册;两种芯片的共同拥有的io口或者其他硬件,完全可以进行程序移植,首先是在IAR上右键项目,选择option–》General Option,修改DEVICE,修改为移植后的芯片;除此之外,还需要在STM8S.h的头文件中修改声明,选择使用的芯片
发表于 2020-01-16
STM8S程序移植心得
stm8s_atomthread
STM8S Atomthread 实时操作系统移植介绍1.嵌入式操作系统基本知识嵌入性、专用性与计算机系统是嵌入式系统的基本元素;跟通用计算机系统(如windows、linux等)相比,嵌入式系统具备专用性强、可剪裁性好、实时性好和功耗低的特点。实时操作系统满足条件: 必须是多任务(任务调度或调度器,最核心功能)任务的切换时间与系统当前任务数无关(调度器对任务切换时间)中断延时的时间可预知并尽可能短(任务实时性要求,即为CPU对任务响应速度)目前,实时系统主要类型: 抢占式(剥夺式)非抢占式(非剥夺式)2.实时操作系统介绍:AtomthreadAtomthread完全开源、轻量、便捷,针对于嵌入式操作系统
发表于 2020-01-16
stm8s_atomthread
STM8S003外部中断识别机械式编码器正反转
最近在项目上,用到鼠标上用的编码器,按照厂家给的编程方法,发现容易产生误判,故而自己用外部中断的方式来做,发现这样误判的情况会得到很大的改善,现发上来与大家分享。#include "stm8s103f3p.h"#include "stm8s_bitsdefine.h"#include "typedef.h"#define  CodeA PB_IDR_0#define  CodeB PB_IDR_1uint8_t CodeB_last,CodeB_current,whe_ch,ADJ;void UART1_Init(void
发表于 2020-01-13
新疆喜乐彩玩法TM1638测试程序STM8S
//适用于STM8S003F3//main.c 文件//实验现象:刚开始上电时,所有数码管亮且显示0;按下按键其对应的数码管数字加一,对应的LED灯亮#include"stm8s.h"#include"tm1638.h"unsigned char num[8];        //各个数码管显示的值int main(void){ u8 i;       init_TM1638();                 
发表于 2020-01-13
STM8S003F3使用总结——定时器
STM8S003F3有三个定时器,分别为16位高级定时器TIM1、16位通用定时器TIM2和8位基础定时器TIM4。其中,TIM1和TIM2支持PWM输出,本项目中用到了TIM1-CH1和TIM2-CH1两个通道作为PWM输出,以及TIM4作为时基,下面进入正文。编译环境:IAR for STM8 3.10.2库版本:V2.2.01.定时器关于定时器没什么好说的,直接看下配置代码void TIM1_Init(u16 psc, u16 arr, u16 duty){    TIM1_TimeBaseInit(psc, TIM1_COUNTERMODE_UP,  arr, 0);  
发表于 2020-01-13
STM8S003F3使用总结——定时器
新疆喜乐彩玩法STM8S PWM 应用 呼吸灯
//主功能接受:使用MCU STM8S105C6 的PWM通道2 PC2 来做呼吸灯 已经验证OK,呵//呵,这个PWM设置刚开始用还是有点麻烦,因为是自己摸索,花点时间,还是攻克了。//所用子函数都是调用STM8S的库函数stm8s_tim.c中的。宏定义://分频宏//计数器的时钟频率(fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)。#define  TIM1_PRESCALER_1    ((u16)0x00)#define  TIM1_PRESCALER_2    ((u16)0x01)#define 
发表于 2020-01-13
小广播
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 新疆喜乐彩玩法电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 zjgsmm.com, Inc. All rights reserved
陕西11选5走势图 新疆喜乐彩 北京赛车怎么玩 上海11选5 新疆喜乐彩玩法北京赛车pk10赔率最高的平台 百万彩票 微信pk10机器人漏洞 新疆喜乐彩玩法 智慧彩票投注开户 北京两步彩