STM8 串口接收字符串问题

发布者:不懂之人最新更新时间:2019-05-24 来源: eefocus关键字:STM8  串口接收  字符串 手机看文章 扫描二维码
随时随地手机看文章

此处附上接收中断源码

#ifdef _RAISONANCE_

void USART_RX_IRQHandler(void) interrupt 28

#endif

uint8_t cnt_USART ;

#ifdef _IAR_SYSTEMS_

#pragma vector=30

__interrupt void USART_RX_IRQHandler(void)

#endif

{

    /* In order to detect unexpected events during development,

   it is recommended to set a breakpoint on the following instruction.

    */

    USART_ClearITPendingBit ();//清中断标志

    if(!USART_GetFlagStatus (USART_FLAG_RXNE))//等待接收完毕

    {

    

      p_rxbuf[cnt_USART++] = USART_ReceiveData8();     //接收数据 

      if(cnt_USART == 0x0B)

        cnt_USART = 0xFF ;

    }

//    USART_RendCmd(p_rxbuf);  //接收11bytes串口指令

}

cnt_USART 为全局变量,因为每次接收每次只是接收1byte,因此,在主程序应该进行适当的延时来等待缓冲区的数据被读取。

       while(cnt_USART!=0xFF)

       {

        if(mark_1ms >100)

          break;

       }

在函数进行适当的延时进行等待,mark_1ms 此处是使用TIM2进行延时,也可以在主函数中进行空函数延时。


关键字:STM8  串口接收  字符串 引用地址:STM8 串口接收字符串问题

上一篇:STM8的EEPROM解锁是可以重复进行的
下一篇:Nodemcu freertos 学习之路 -- GPIO口控制LED灯开关

推荐阅读最新更新时间:2024-11-04 21:49

STM8 SPI的学习
#define SPI_CS_PORT GPIOC #define SPI_CS_PIN GPIO_PIN_4 #define SPI_CLK_PORT GPIOC #define SPI_CLK_PIN GPIO_PIN_5 #define SPI_MOSI_PORT GPIOC #define SPI_MOSI_PIN GPIO_PIN_6 #define SPI_MISO_PORT GPIOC #define SPI_MISO_PIN GPIO_PIN_7 SPI是串行设备接口(Serial Peripheral Interface)的英文缩写,是一种单主多从式的全双工同步串行通信协议。 SCK:同步时钟信号线
[单片机]
STM8 CPU寄存器描述
简介 STM8S是基于8位框架结构的微控制器,其CPU内核有6个内部寄存器,通过这些寄存器可高效 地进行数据处理。STM8S的指令集支持80条基本 20种寻址模式,而且CPU的6个内部寄 存器都拥有可寻址的地址。如果想了解全部STM8S指令集,请参考STM8 微控制器家族编程手册 (PM0044)。 CPU寄存器 在图1所示的编程模型中可以看到6个CPU寄存器。在一个中断发生后,寄存器以图2所示顺序入栈,它们以相反的顺序出栈。如果需要的话,中断服务程序可使用POP和PUSH指令来对之进行操作。 CPU寄存器描述 累加器(A) 累加器是一个8位通用目的寄存器,用于保存算术运算、逻辑运算以及数据操作的操作数及结果。 索引寄存
[单片机]
<font color='red'>STM8</font> CPU寄存器描述
关于串口FIFO中断
串口FIFO中断有;RDA CTI 串口的接收模块包括接收缓冲寄存器和移位寄存器。接收的数据进入移位寄存器后经移位处理并行传入缓冲寄存器,事实上,UART的FIFO是一个硬件环形的缓冲队列,物理上不可寻址,不可见,仅U0RBR这个FIFO出口可见。U0RBR就是接收FIFO的第一位。FIFO的长度是可设的,也叫触发点,低于这个长度的字符串不会引起中断,但在实际应用中,不可能串口读入的数据长度总为触发点值的整数倍,为此,引入了CTI即字符接收超时中断,当有不足触发点值规定的字符串读入时,将引起中断,其与串口的RDA中断具有相同的优先级,并会同时被使能。 那么,LPC2000的UART机制是如何判断串口读入数据的一次性容量呢?
[单片机]
STM32CubeIDE 中 HAL库的串口中断接收函数 HAL_UART_Receive_IT
一、代码自动生成以后的项目及代码结构: main.c中,调用了串口初始化 串口初始化函数赋值了串口的参数 相当于底层的初始化,配置引脚、并开启中断。 至此串口1配置完毕 二、库文件stm32f1xx_hal_uart.c内的秘密 2.1 初始化 1.usart.c中,MX_USART1_UART_Init 调用了库的HAL_UART_Init,将结构体传递进该函数中 2.HAL_UART_Init干了些什么事? if (huart- gState == HAL_UART_STATE_RESET) { huart- Lock = HAL_UNLOCKED; HAL_UART_MspInit(huar
[单片机]
STM32CubeIDE 中 HAL库的<font color='red'>串口</font>中断<font color='red'>接收</font>函数 HAL_UART_Receive_IT
使用 SDCC 开发 STM8
本文介绍如何在 EIDE 上将 STM8 标准库移植到 SDCC 工具链,并完成测试 以 STM8S105K4T6 为例,其他的库过程大都相同 1. 创建 STM8 项目 打开 EIDE, 新建项目,类型选择 C51,注意:路径里最好不要有中文空格,在编译器里会出错 切换工具链至 SDCC, 打开编译选项,设置 device 为 stm8 设置宏,本项目为:STM8S105,USE_STDPERIPH_DRIVER 新建一个目录,将复制外设库到里面,并去除掉芯片不支持的外设源文件 2. 移植过程:主要针对 stm8s.h, 其他文件基本不用动 移植的过程并不复杂,就是参照其他编译器的定义,查询 SDCC 手册,
[单片机]
使用 SDCC 开发 <font color='red'>STM8</font>
更超值,STM8微控制器的单板Discovery 套件发布
意法半导体的 STM8-SO8-DISCO 8位微控制器(MCU) Discovery 套件,可让用户在板子上一次评估三款STM8微控制器。这三款STM8微控制器是目前市场上在售的采用主流8引脚SO8封装的产品。 除了三合一这个出色的性价比优势外,该套件还是一款简约的开发板,除启动下一步开发所需的最基本功能外,没有任何多余的的配置。主板上有一个按钮和一个LED指示灯,方便用户与电路板交互,嵌入式STLINK/V2和USB端口简化了在线调试和从PC下载代码的过程。这三款微控制器焊接在三个插接式DIL-8模块上,可以用手拔下DIL-8模块与紧凑型主板的连接之处,单独取下模块,进行原型开发。 该套件支持 STM8S001J
[单片机]
更超值,<font color='red'>STM8</font>微控制器的单板Discovery 套件发布
STM8与汇编语言(10)--UART应用之二
下面这个实验程序比较简单,它是在上篇基础上,增加了查询方式从UART接收一个字符的子程序。主循环中,等待接收一个字符,然后将接收到的字符再发送出去。如果与WINDOWS的超级终端相连,则键盘上按什么按键,则显示对应的字符。 同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。 编译通过后,下载到开发板,运行程序。在PC机上运行超级终端,波特率为9600,然后从键盘上输入按键,屏幕上就显示对应的字符。 stm8/ #include mapping.inc #include STM8S207C_S.INC ; 定义堆栈空间的起始位置和结束位置 s
[单片机]
关于STM8的AFR0和AFR1使用
芯片手册中写AFR0和AFR1不能同时使用 AFR1 Alternate function remapping option 1 (2) 0: AFR1 remapping option inactive: default alternate function(1); 1: Port A3 alternate function = SPI_NSS; port D2 alternate function =TIM2_CH3. AFR0 Alternate function remapping option 0(2) 0: AFR0 remapping option inactive: Default alternate func
[单片机]
关于<font color='red'>STM8</font>的AFR0和AFR1使用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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