STM32串口的485收发控制角的电平控制

发布者:Xiangtan最新更新时间:2017-11-07 来源: eefocus关键字:STM32  串口  收发控制角  电平控制 手机看文章 扫描二维码
随时随地手机看文章

关于485电平控制,如果在发送中断处理后边直接电平转换,会导致发送数据不全,如果加入一定延时,然后在进行电平转换,可以解决这个问题,但略显笨重。解决方法是开启发送完成中断:USART_IT_TC(Transmission complete interrupt)可以完成精准控制,需要注意的是,这个中断没发送完一个字节都会产生,因此建议在最后一个字节装入发送缓存器后再开启。

void USART1_IRQHandler(void)

{

CPU_INT08U rx_data;

CPU_INT08U tx_data;

    if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)                       //串口1接收处理

    {       

rx_data = (USART_ReceiveData(USART1) & 0xFF);

// 放入通道1接收缓冲区循环队列

if (!COM_CHANNEL_RXByteIn(BSP_RTU_CHANNEL_NO1, rx_data)) 

{

 // 缓冲区满,接收失败

}

    }    

    if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)                        //串口1发送处理

    {       

if (COM_CHANNEL_TXByteOut(BSP_RTU_CHANNEL_NO1, &tx_data)) 

{

USART_SendData(USART1, tx_data);

  } 

  else 

  {

USART_ITConfig(USART1, USART_IT_TXE, DISABLE); //关闭发送中断


USART_ClearITPendingBit(USART1,USART_IT_TC);

USART_ITConfig(USART1, USART_IT_TC, ENABLE);

}   

    }    


    if(USART_GetITStatus(USART1, USART_IT_TC) != RESET)                        //串口1发送完成处理

    {       

USART_ITConfig(USART1, USART_IT_TC, DISABLE); //关闭发送中断

GPIO_WriteBit(GPIOB, GPIO_Pin_5,Bit_RESET); //RX_ENABLE


    }    


}


关键字:STM32  串口  收发控制角  电平控制 引用地址:STM32串口的485收发控制角的电平控制

上一篇:STM32的RTC闹钟唤醒待机模式
下一篇:STM32L151的RTC总结

推荐阅读最新更新时间:2024-03-16 15:43

stm32的任务调度方式和步骤
STM32的任务调度可以有两种方式 1)通过systick_handler定时器调度 2)执行一个系统调用 任务调度的步骤总结为如下: 保存程序的上下文即当前任务的寄存器,保存存储寄存器的任务堆栈的地址。 根据下一个任务的任务堆栈地址依次弹出下一个任务的16个寄存器。 堆栈中的寄存器保存顺序如下, XPSR SP(代表MSP或PSP,在任务调度完成后,根据PSP的值定位了是哪个任务) LR(存储函数的返回) R12 R3 R2 R1 R0 R11 R10 R9 R8 R7 R6 R5 R4
[单片机]
STM32系列第27篇--红外遥控
红外编码分类: 红外遥控器采用单总线通信方式,红外常用的编码: NEC Protocol 的PWM(脉冲宽度调制) Philips RC-5 Protocol 的PPM(脉冲位置调制)。 NEC协议特征: 8位地址和8位指令长度 地址和命令2次传输(确保可靠性) PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1” 载波频率为38Khz 位时间为1.125ms或2.25ms NEC码位定义 : 遥控器发送: 逻辑1:2.25ms(560us脉冲+1680us低电平) 逻辑0:1.125ms(560us脉冲+560us低电平) 接收头接收: 遥控接收头在收到脉冲的时候为低电平 逻辑1:560us低+16
[单片机]
STM32CubeMX-1.串口收发(中断)
一,使用CubeMX生成工程文件 1,配置串口引脚 2,时钟配置 3,打开中断 (此图还不太懂,先记下来,待研究) 4,生成代码 备注: 此处选为自己所用软件 记得勾选此处,让代码结构更容易看懂。 二,完成主函数:直接上代码,数字标注处为代码添加部分。 /** ****************************************************************************** * File Name : main.c * Date : 11/07/2018 19:53:00 * Description : Mai
[单片机]
STM32CubeMX-1.<font color='red'>串口</font><font color='red'>收发</font>(中断)
51单片机中用中断方式实现串口数据发送与接收
/* Description:用中断方式实现串口数据发送 Author:Jcy Date:2012-5-2 */ #include reg52.h #define uint unsigned int #define uchar unsigned char uchar receive_ser; //串口接收到的数据 uchar flag=0; uchar receivebuf = Jcy ; uchar i=0; uchar j; void init_ser() { TMOD=0X20;//定时器1工作在方式2 TH1=0XFD; TL1=0XFD; //波特率9600,51单片机大多用这个 TR
[单片机]
STM32在线升级IAP-IAP的介绍
IAP(In Application Programming)即在应用编程,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。 通常实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信方式(如USB、USART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作: 1)检查是否需要对第二部分代码进行更新
[单片机]
基于TTL串口的嵌入式USB主机系统的设计
1 引言 随着移动存储业的发展及数码产品的普及,数据采集系统、工控行业和嵌入式用户对移动存储的需求越来越大,也对数据移动存储盘提出了更高的应用要求,包括到地矿数据采集行业用户、水文系统数据采集行业用户、仪器仪表制造行业用户、铁路、长途汽运等交通系统数据采集用户、油田数据采集系统用户、单板系统的软件升级用户、纺织系统数据采集用户、银行等。但由于之前多数数据采集设备、工控机及嵌入式系统不具备USB数据输入输出标准接口,所以在USB数据存储方面一直得不到很好的普及。业界和用户的需求使得嵌入式USB主机的研究成为USB研究领域的一个新的方向。 本文介绍了一种基于TTL串口的USB主机系统,通过TTL串口(或并口)转接出USB接口,系统
[电源管理]
基于TTL<font color='red'>串口</font>的嵌入式USB主机系统的设计
STM32的ADC的采样周期确定
  采样频率的确定   1.首先确定ADC 的时钟,这里需要看你的RCC的设置。在采用固件库的基础上,设定ADC的采样频率相对来说是很容易的。   (1)由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。   (2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同   RCC_HCLKConfig(RCC_SYSCLK_Div1);   RCC_PCLK2Config(RCC_HCLK_Div1);   RCC_PCLK1Config(RCC_HCLK_Div2);   (3)采样时间和转换时间   ADC 使用若干个ADC_CLK 周
[单片机]
stm32 usb数据缓冲区疑问
USB不同的应用需要使用到的端点数和端点数据长度各不相同,如果为每个端点都单独规划一个存储区非常浪费。 所以STM32为USB模块提供了共512个字节的存储区,至于如何为每个端点分配使用这512B的空间,就是用户自己的事情了,这样存储区的分配就非常经济灵活。这512B空间的首地址是0x40006000。 你看到的#define ENDP2_RXADDR (0xD8),这个0xD8就是在这512B空间里的偏移地址,说明端点2收到的数据将放在0x40006000 + 0xD8 * 2的地址空间里。至于为什么要 2,是因为这部分存储区是按照2字节访问的,即每存放1个字节的数据要占据2个字节的空间。所以这段存储区的地址是从
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved