你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
我来回答
举报
查看全部评分
TLLED 发表于 2018-10-30 18:01 你发送数据是定时发,还是接收到什么数据后在发送,编写一个发送函数,按照你制定的协议,这个比较简单。接 ...
聪神聪 发表于 2018-11-1 09:52 你只问发送部分的话,你自己写个函数用于发送你的数据(把裸数据加上协议最后调用HAL库的发送函数:HAL_UAR ...
chifen 发表于 2018-11-1 19:44 先做一个打包函数,把协议打包起来,放入一个数据里,把长度算好了,最后调用 发送,这个比较方便,接收你可以用 ...
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
测试测试12345
群
tiwen
BBBB
switch (接收标志位)
{
case 0x00:
if(接收数据==0x6d)
{
接收标志位=1
}
break;
case 0x01:
接收字节数
接收标志位=2
break;
case 0x02:
接收数据
break;
default:
break;
}
评分
查看全部评分
void frame_transmit(u8 *buf,u8 length,u8 cmd)
{
u8 temp[20]={0},i,Xor=0;
u16 Sum=0;
temp[0]=0x6D;
temp[1]=length;
temp[2]=0;
temp[3]=0xB0;
temp[4]=cmd;
for(i=5;i<length;i++)
{
temp[i]=buf[i-5];
}
for(i=3;i<length;i++)
{
Xor^=temp[i];
}
Xor~=Xor;
temp[length]=Xor;
for(i=3;i<length+1;i++)
{
sum+=temp[i];
}
temp[length+1]=sum&0xff;
HAL_UART_Transmit(&UART1_Handler,(uint8_t*)temp,length+2,1000);
}
接收部分建议用一个10~20ms定时器用于判断一帧的结束,就不展开讲了
while((USART1->ISR&UART_FLAG_TXE)!=UART_FLAG_TXE);
USART1->TDR = *str;
用这种方式 ,这样就与库没有关系了
非常感谢,已经成功实现了
非常感谢,已经成功实现了
嗯嗯,明白了,你相当于是直接操作寄存器