新手入门
- 积分
- 15
- 金钱
- 15
- 注册时间
- 2018-5-17
- 在线时间
- 2 小时
|
1金钱
STM32F407接收距离传感器TOF05140发送的数据,硬件仿真显示变量USART_RX_STA始终为0,也无法进入接收中断函数。
TOF05140是使用USART串口通讯协议的测距传感器,默认在不需要接收任何指令的情况下以300ms为周期发送4-6个字节的ascii码距离数据;已经用PC的串口调试助手证明传感器没有问题,能够正常发送数据。
usart.c和usart.h未做更改,直接使用论坛下载的。使用的IO口是对应的usart1。
希望论坛有高手能指点一下如何配置串口或者修改中断函数才能让单片机接收并且处理传感器发送的数据。
放一下main函数。
int main()
{
u8 i,t,len,temp;
u8 distance[3];
distance[0]=0x64;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //延时函数初始化
led_init();
uart_init(9600);
while(1)
{
reset_code(); //重置LED灯串
if(USART_RX_STA&0x8000) //若把断点设在次if分支内,则不会运行到断点处
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
temp=0;
for(i=0;i<len;i++)
{
temp=temp+(USART_RX_BUF[i+2]-0x30)*10^i;
}
distance[0]=temp;
USART_RX_STA=0;
}
else
{
for(i=0;i<=71;i++)
{
set_color(100,100,distance[0]); //设置灯串颜色
}
}
}
}
|
|