野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13793|回复: 5

串口一个函数的改写,求各位大佬帮忙

[复制链接]
发表于 2017-8-24 14:23:14 | 显示全部楼层 |阅读模式
5火花
void USART3_IRQHandler(void)
{
        u8 res;            

        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据
        {         

        res =USART_ReceiveData(USART3);               
        if((USART3_RX_STA&(1<<15))==0)//接收完的一批数据,还没有处理,则不再接收其它数据
        {
                if(USART3_RX_STA<USART3_MAX_RECV_LEN)                //还可以接收数据
                {
                        TIM_SetCounter(TIM7,0);//计数器清空                                       
                        if(USART3_RX_STA==0)               
                                TIM_Cmd(TIM7, ENABLE);  //使能定时器7
                        USART3_RX_BUF[USART3_RX_STA++]=res;                //记录接收到的值         
                }else
                {
                        USART3_RX_STA|=1<<15;                                        //强制标志接收完成
                }
        }         
}                                                                                 
}

大佬们,这一句USART3_RX_BUF[USART3_RX_STA++]=res; 怎么用HAL库函数改写??

回复

使用道具 举报

 楼主| 发表于 2017-8-24 14:24:26 | 显示全部楼层
                                if(huart1.RxXferCount<1024)                       
                                {
                                        __HAL_TIM_SetCounter(&htim2,0);       
                                        xfd =__HAL_TIM_GetCounter(&htim2);
                                        TIM_GET_CLEAR_IT(&htim2,TIM_IT_UPDATE);               
                                        if(huart1.RxXferCount==0)                       
                                        {       
                                                HAL_TIM_Base_Start_IT(&htim2);       
                                        *huart1.pRxBuffPtr++ = (uint8_t)(huart1.Instance->DR & (uint8_t)0x00FFU);               

                                               
                                        }               
                                       
                                        printf("TIM:%d\r\n",xfd);                                       
                                }else
                                {
                                        huart1.RxXferCount|=1<<15;                               
                                }

这是小弟改写的,不行。。。
回复

使用道具 举报

发表于 2017-8-24 14:36:12 | 显示全部楼层
我还没有使用过 HAL 库
回复

使用道具 举报

 楼主| 发表于 2017-8-24 14:39:05 | 显示全部楼层
fire 发表于 2017-8-24 14:36
我还没有使用过 HAL 库

心痛2017,我标准库还没熟手呢忽然就改成hal库了,好气啊啊啊      让我这实习生怎么混
回复

使用道具 举报

发表于 2017-8-24 15:31:39 | 显示全部楼层
胡图图 发表于 2017-8-24 14:39
心痛2017,我标准库还没熟手呢忽然就改成hal库了,好气啊啊啊      让我这实习生怎么混

现在ST又推出了个LL库了,估计HAL又要被抛弃了
回复

使用道具 举报

发表于 2017-11-1 16:03:42 | 显示全部楼层
我司是专业生产HMI串口液晶触摸屏的,想了解的的朋友可以打我电话18123741645微信同号,或加QQ397050970张S,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-2 11:33 , Processed in 0.027859 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表