新手谈SBUS接收与转换

本文介绍了新手在处理SBUS串口接收时需要注意的三个关键点:硬件输入取反,包尾判断,以及STM32串口配置。通过空闲中断检测帧结束,结合0x0F判断包头来接收数据。数据解析涉及将SBUS字节转换为脉宽值,通过拟合公式得到实际脉宽。提供了经过测试的代码和拟合资料下载链接。
摘要由CSDN通过智能技术生成

SBUS串口接收部分

1、硬件输入一定要取反,别的帖子有取反电路我就不搬了
2、包尾不一定与协议中的一致,我之前就是在纠结为什么包尾与别人的不同从而怀疑自己是不是没有收到正确的数据
3、STM32串口配置一定要正确

串口配置

void USART2_Config(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	USART_InitTypeDef  USART_InitStructure;
	//配置IO口
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;				
	GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;						
	GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3;										
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	//配置外设
	USART_InitStructure.USART_BaudRate	= 100000;									//波特率设置
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;	//硬件流失能
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;					//收发使能
	
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值