历史上的今天

今天是:2024年09月28日(星期六)

2021年09月28日 | stm8s实现串口中断接,中断发功能

发布者:keiss2018 来源: eefocus关键字:stm8s  串口中断接  中断发功能 手机看文章 扫描二维码
随时随地手机看文章

代码演示:

一、首先进行UART1初始化


/*USART1 config*/

void USART1_Init(void)

{

      /*Uart1*/

      UART1_CR1=0x00;

      UART1_CR2=0x00;

      UART1_CR3=0x00;

      // 设置波特率,必须注意以下几点:

      // (1) 必须先写BRR2

      // (2) BRR1存放的是分频系数的第11位到第4位,

      // (3) BRR2存放的是分频系数的第15位到第12位,和第3位到第0位

      // 例如对于波特率位9600时,分频系数=2000000/9600=208

      // 对应的十六进制数为00D0,BBR1=0D,BBR2=00

      //例如对于波特率位9600时,没有分频 = 16000000/9600 = 1666

      //对应的十六进制数为0682,BBR1=68,BBR2=02

 

      UART1_BRR2=0x02;

      UART1_BRR1=0x68;

      

      UART1_CR2 = 0x2c;  //接收,发送使能,开接收中断

}

注意的事项:波特率的设置方式,在UART1初始化中打开了接收,发送使能,但是只打开了接收中断,而发送中断打开在哪里呢?接下来往下看。


二、接收中断服务函数中的操作过程


//将收到的数据再发送出去

#pragma vector= UART1_R_RXNE_vector           //0x14

__interrupt void UART1_R_RXNE_IRQHandler(void)

{

  u8 data;

  if(UART1_SR & 0x20)  //收到数据该位置位

  {

    UART1_SR &= ~0x20; //清接收中断标志位

    

    rs485_data = UART1_DR;

    

    Rev_Slaver_PrePare(data);    

  }

}

这里采用的接收中断方式不是采用while()去等待接受标志位完成,而是采用接收一个数据就传递一个数据到需要处理的函数,有人可能会说在接收中断中不要去做太多的事情,其实不然,在对接收数据处理函数中其实是对接收到的数据进行存储并不像复杂的逻辑运算而担心中断触发太久。处理函数这边就不贴出来,本文主要的目的是将接收,发送中断的处理方式。


三、发送中断处理方式


void USART1_SendArray(uint8_t *data,uint8_t len)

{

  for(uint8_t i = 0;i < len;i++)

  {

    Tx1Buffer[count1++] = *(data + i);

  }

  UART1_CR2 |= 0x80; //直接开启发送中断

}

#pragma vector= UART1_T_TC_vector    //0x13

__interrupt void SYS_UART1_TX_IRQHandler(void)

{

  if(UART1_SR & 0x80)

  {

    UART1_DR = Tx1Buffer[Tx1Counter++];

    

    if(Tx1Counter == count1)

    {

      UART1_CR2 &= ~0x80;       //关闭发送中断

    }

  }

}


需要发送的数据串调用USART1_SendArray();,将会触发中断发送服务函数进行发送,在这里说明一点,stm8s103f3这款芯片的发送中断服务函数与接收中断服务函数不是同一个,这与stm32系列的芯片不太一样,后者是发送和接收中断共用同一个串口中断服务函数,在中断向量表中可观察到不同。


在进入中断发送服务函数中后,将要发送的数据串依次装入UART1_DR,这里就不需要像接收中断服务函数中清标志位,这边是硬件自动清除。

关键字:stm8s  串口中断接  中断发功能 引用地址:stm8s实现串口中断接,中断发功能

上一篇:stm8s跳出中断程序c语言,STVD自动生成的stm8
下一篇:STM8S中断系统

推荐阅读

据外媒报道,作为德国出口拉动型经济的引擎,德国机器人和自动化设备的销售,在2017年实现创纪录的增长后,预计面临国际贸易紧张加剧的局面,今年将增长9%,而去年增长为13%。 德国机械工程协会V周二表示,预计2018年机器人和自动化设备的销量将达到158亿欧元(约合185亿美元)。 VDMA旗下机器人和自动化设备协会主席诺伯特·斯泰茵(Norbert Stein)表...
华为宣布生态布局,未来充满了诸多挑战和未知据全球权威市场研究机构IDC发布的报告,中国数字化转型相关的ICT支出超过了3100亿美元,约合2.1万亿人民币。而到2021年,中国数字经济将达到8.5万亿美元的规模,这其中,既包括数字的产业化,也包括产业的数字化。华为生态布局:能否赢得未来?在“沃土计划”进行到第四年的时候,华为提前发布了升级版本。9月18...
台积电2nm制程研发进度超前,业界看好其2023年下半年风险试产良率就可以高达90%。这对于业界而言既是好消息,也是坏消息。好的是,当下AI和手机等芯片可以凭借先进制程获得更好的能效比,进行更多创新。坏的是,先进制程芯片的成本给无晶圆芯片设计公司带来了巨大的压力。 乔治敦大学沃尔什外交学院安全与新兴技术中心(CSET)的两位作者编写的一份题为《A...
前几日刚看到这个方向的投资潜在机会,宝马就来了一把大的:GaN Systems与宝马签订了产能协议,为宝马汽车提供GaN功率晶体管,合作金额为1亿美元。从这个意义上来看,GaN在汽车上的应用可能如Yole所预期的一样,在将来的2-3年落地。从2021年开始,随着大多数车企开始准备800V系统,SiC的用量马上要进入爆发期,接下来的GaN的使用估计很快能在DCDC和OBC上...

史海拾趣

问答坊 | AI 解惑

拆解杂牌汽车两声道功放

这东西正使用中80块淘回来的二手货,上次看一位会员争论汽车功放不是升压的,现发图片上来大家看看! 这东西12V输入通过DC TO DC电路升压为双18V供功放部分使用,看上去功率也有几十W放在房间音量还可以! xinxin2001 跟的贴图参考 ...…

查看全部问答∨

650W音响功放高速电源电路设计资料

本帖最后由 paulhyde 于 2014-9-15 04:11 编辑 650W音响功放高速电源电路设计资料  …

查看全部问答∨

verilog_300examples

初学者可以模仿例子写些门级电路…

查看全部问答∨

coldfire qspi模块

这是关于coldfire 处理器的qspi模块介绍 …

查看全部问答∨

有没有用过飞思卡尔 9S08LG的朋友,请教几个问题

刚接触嵌入式驱动设计,公司设计了一个板子,用了 PTD0/LCD0~PTD3/LCD3 作为COM0~COM3 而PTD4/LCD4~PTD15/LCD15 作为S0~S12 我照freescale的文档做了初始化,可是在板子上调试时,没有任何反应, 请高手指点是为什么? #define CONFIG_LCD ...…

查看全部问答∨

关于WINCE6.0的一个忧虑

我以前开发的产品用的都是wince5.0,所以我电脑上装的软件是 :PB5.0+EVC4.0+VC6.0,现在要用wince6.0了,我的问题是:装 VS 2005会不会影响我以前的CE5.0的工程、BSP等,我还能用PB5.0吗?还能用EVC4.0、VC6.0吗?我是否需要将以前的软件卸掉?最 ...…

查看全部问答∨

cpld

cpld板子烧坏了是否还能下载,会有什么后果呢?请说详细点…

查看全部问答∨

悬殊10分:52的T2计数器问题

我有下面这段程序,send()子程序单独工作的时候是正常的,但是加入到主程序中时就出现问题, 我的主程序是一个频率计。主要问题是频率计的数码管显示不正常,串口能输出数据,但是数据是错误的。 #include <AT89X52.H> unsigned char code d ...…

查看全部问答∨

寻求合作,无线测绘的项目

公司这边接到一个项目,需要采用无线技术,测量空中物品的运动轨迹、范围等,例如高架线缆,受到风力的影响,造成不规则的各个方向的摆动,该项目需要测试出其运动的范围和运动轨迹。     有这方面测量经验的公司和个人都可以,请回帖或 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved