大数据串口传输
来源:互联网 发布:西王母国 知乎 编辑:程序博客网 时间:2024/06/05 06:45
/*******************************************************************************
* Function Name : USART1_IRQHandler
* Description : This function handles USART1 global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void USART1_IRQHandler(void)
{
CPU_SR cpu_sr;
unsigned char *t1;
OS_ENTER_CRITICAL();
OSIntNesting++;
OS_EXIT_CRITICAL();
//用户程序..
//接收中断
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
Rev_uart1_Str_Flag=1; //接收到串口数据置1
Rev_uart1_over_count=0; //每来一字节溢出计数清0
//两个指针,一个用来收,一个用来读
t1=inRx1Buf;
t1++; //保留指针位置
if(t1==Rx1Buf+Uart1_LenRxBuf) t1=Rx1Buf; //如果到缓冲区末尾,则返回缓冲区头
if(t1==outRx1Buf)
{
Buff1_Init();
if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
{
USART_ClearFlag(USART1,USART_FLAG_ORE); //读SR
USART_ReceiveData(USART1); //读DR
}
Rev_uart1_Str_Flag=0;
OSIntExit(); //如果相等,说明缓冲区满了,RxBuf Full
}
*inRx1Buf=USART_ReceiveData(USART1);
inRx1Buf=t1;
}
//溢出-如果发生溢出需要先读SR,再读DR寄存器 则可清除不断入中断的问题
if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
{
USART_ClearFlag(USART1,USART_FLAG_ORE); //读SR
USART_ReceiveData(USART1); //读DR
}
OSIntExit();
}
这样我大量数据连续收没问题哦
* Function Name : USART1_IRQHandler
* Description : This function handles USART1 global interrupt request.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void USART1_IRQHandler(void)
{
CPU_SR cpu_sr;
unsigned char *t1;
OS_ENTER_CRITICAL();
OSIntNesting++;
OS_EXIT_CRITICAL();
//用户程序..
//接收中断
if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET)
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE);
Rev_uart1_Str_Flag=1; //接收到串口数据置1
Rev_uart1_over_count=0; //每来一字节溢出计数清0
//两个指针,一个用来收,一个用来读
t1=inRx1Buf;
t1++; //保留指针位置
if(t1==Rx1Buf+Uart1_LenRxBuf) t1=Rx1Buf; //如果到缓冲区末尾,则返回缓冲区头
if(t1==outRx1Buf)
{
Buff1_Init();
if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
{
USART_ClearFlag(USART1,USART_FLAG_ORE); //读SR
USART_ReceiveData(USART1); //读DR
}
Rev_uart1_Str_Flag=0;
OSIntExit(); //如果相等,说明缓冲区满了,RxBuf Full
}
*inRx1Buf=USART_ReceiveData(USART1);
inRx1Buf=t1;
}
//溢出-如果发生溢出需要先读SR,再读DR寄存器 则可清除不断入中断的问题
if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET)
{
USART_ClearFlag(USART1,USART_FLAG_ORE); //读SR
USART_ReceiveData(USART1); //读DR
}
OSIntExit();
}
这样我大量数据连续收没问题哦
- 大数据串口传输
- CC2541之串口传输数据
- 串口通信如何传输大数据量
- 一个串口同时传输多个数据
- android设备使用usb串口传输数据
- 串口传输数据卡死问题解决方案
- 实现WCF传输大数据
- 串口通信数据位长度对传输数据的影响
- 串口通信数据位长度对传输数据的影响
- 串口通信数据位长度对传输数据的影响
- 串口通信数据位长度对传输数据的影响
- 串口通信数据位长度对传输数据的影响
- WCF传输大数据的设置
- WCF传输大数据的设置
- WCF传输大数据的设置
- 网络传输大数据-内存映射
- 单片机用串口传输浮点型数据方法
- 单片机用串口传输浮点型数据方法
- SAP HANA 10. Create an SQLScript Procedure with Imperative Logic
- 今天用GridView报错,找了好久才发现问题所在
- 20131129秒针系统算法面试
- java连接oracle数据库 -- 直接用jsp访问连接
- 编译链接5大潜规则
- 大数据串口传输
- 开源免费天气预报接口API(国家气象局提供)
- 【源码免费分享】99%的人都不知道的微信功能!
- 算法口诀
- exit与atexit
- wamp 403 禁止访问
- 如何解决word启动提示向程序发送命令出现问题
- ios下得到汉字拼音的方法比较
- Linux下shell script的执行方式汇编