微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于2541广播会断开的问题

关于2541广播会断开的问题

时间:10-02 整理:3721RD 点击:

用2541做一个体重计;

问题是这样的:ad模块用的HX711(一个24位的ad转换芯片),在simpleBLEPeripheral工程里,开启了一个1.5s周期的定时任务,用来读取重量值,

在这个任务里面会用到一个读ad值的驱动程序,里面有一句    while(ADDO);(作用是 等待ad的数据输出脚变为低电平,再开始后面  读取24位有效数据的 代码)。就是这一句  “ while(ADDO);”  使得蓝牙广播会断开,问题出在哪里? 把任务的周期调长也没有用。

以下是任务的 部分代码,请各位大神帮忙!

if ( events & SBP_shan_EVT )

{

uint32 Count;     char i;    

ADSK=0;

Count=0;
while(ADDO); //AD转换未结束则等待,否则开始读取      就是这一句对蓝牙广播产生影响
for (i=0;i<24;i++)
{
ADSK=1; //PD_SCK 置高(发送脉冲)
Count=Count<<1; //下降沿来时变量Count左移一位,右侧补零
ADSK=0; //PD_SCK 置低
if(ADDO)
{
Count++;
}
}
ADSK=1;
Count=Count^0x800000;//第25个脉冲下降沿来时,转换数据 25
ADSK=0;

osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_shan_EVT,1500);
return (events ^ SBP_shan_EVT);
}

斷開時的error code是0x3F嗎??

如果是的話, 我個人感覺應該是頂層的code佔據處理時間(i.e. 你code中的AD转换未结束则等待)導致底層stack無法來得及做傳輸

個人淺見, 也不確定是否真是這樣.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top