STM8S103之串口中断接收
来源:互联网 发布:淘宝迷你型三辊研磨机 编辑:程序博客网 时间:2024/06/06 13:25
本篇博文最后修改时间:2017年07月10日 21:48。
一、简介
本文以STM8S103F3P6编程为例,介绍STM8S103F3P6串口中断接收。
二、实验平台
电脑平台:Windows7 64位旗舰
编译软件:IAR
硬件平台:STM8S103F3P6
三、版权声明
博主:_懵懂
声明:此博客仅供参考不做任何商业用途,最终解释权归原博主所有。
原文地址:http://blog.csdn.NET/qq_18842031
QQ:951795235
E-mail :951795235@qq.com
懵懂之MCU交流群:136384801
单片机软件/硬件交流:127034610
四、实验前提
1、在进行本文步骤前,请先安装IAR EWSTM8-EV-1311版本;准备好STM8S103F3P6硬件平台。
五、基础知识
暂无
六、源码地址
添加上方QQ群 AT群主索要源码。七、实验内容
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<count;i++) { Rxpacker[i] =RxData[i]; } flagpacker = 1;//告诉系统已接收一个完整的数据包 return ; } if(rec) //判断是否处于接收状态 { RxData[count++] = RxBuf; } }
阅读全文
0 0
- STM8S103之串口中断接收
- STM8S103之串口查询发送+中断发送
- STM8S103之外部中断
- STM32CubeMX串口接收中断
- 中断串口接收方法
- STM32学习笔记之-串口中断接收不定数据buff
- STM32串口中断方式接收
- STC12C5A60S2 串口中断接收程序
- STM32串口中断方式接收
- STM32 串口接收中断 代码
- 串口的中断和接收
- STM32串口中断接收和中断发送
- STM8S103之IO复用
- STM8S103之tim1PWM输出
- STM8S103之tim2PWM输出
- STM8S103之AD采样
- C51串口中断接收和发送程序
- s3c2440串口接收中断(OK2440III)
- (转)证券投资及财富管理市场创新趋势
- Winodws下编译OpenH264 for Windows
- Android ViewFlipper
- 设计模式之(一)——策略模式(Strategy Pattern)
- 设计模式(十七)Memento备忘录
- STM8S103之串口中断接收
- 设计模式之策略模式 一
- 高并发软件系统设计原理与实践(二)——性能指标
- mysql联合索引
- STM32定时器周期计算
- Value
- CSS选择器有哪些
- 拷贝构造的N种情况
- 使用百度ueditor时提交表单获取不到数据