int main(空白) { UINT16_T阀= 0; UINT32_T HIGHTMVALVE = 0 ;; INT I = 0; system_init(); periph_init(); if(ds18b20_init()== 1) printf_string(“\ n \ r *温度传感器不存在* \ n \ r”); 别的 printf_string(“\ n \ r *温度传感器存在* \ n \ r”); UART_TEST(); 而(1) { I ++; if(LED_OFF_THRESHOLD == i) { gpio_setactive(LED_PORT,LED_PIN); printf_string(“\ n \ r * LED *”); } 如果(LED_ON_THRESHOLD == i) { gpio_setinactive(LED_PORT,LED_PIN); Valve = DS18B20_Get_tem(); printf_string(“* \ n \ r * LED OFF *”); printf_string(“\ n \ r *温度:”); printf_num(阀门); } if(i == 2 * LED_ON_THRESHOLD) { 我= 0; } }; }
请具体描述一下你说裸和b,以及以及如何的。
手机系统就是简单的读取读取数码,通讯串口将数码传输到电脑端便观察资料,我单位写了一个ds18b20驾驶文章,整机是通讯sdk5.0.4样例sdk 5.0.4 \ sdk 5.0.4 \ da1458x_sdk\ 5.0.4 \ projects \ target_apps \ peripheral_examples \ uart修改而成。主要修改mian.c中间加对ds18b20初始化学数分和在循环中不用使用获取函数。如代码
int main(空白)
{
UINT16_T阀= 0;
UINT32_T HIGHTMVALVE = 0 ;;
INT I = 0;
system_init();
periph_init();
if(ds18b20_init()== 1)
printf_string(“\ n \ r *温度传感器不存在* \ n \ r”);
别的
printf_string(“\ n \ r *温度传感器存在* \ n \ r”);
UART_TEST();
而(1)
{
I ++;
if(LED_OFF_THRESHOLD == i)
{
gpio_setactive(LED_PORT,LED_PIN);
printf_string(“\ n \ r * LED *”);
}
如果(LED_ON_THRESHOLD == i)
{
gpio_setinactive(LED_PORT,LED_PIN);
Valve = DS18B20_Get_tem();
printf_string(“* \ n \ r * LED OFF *”);
printf_string(“\ n \ r *温度:”);
printf_num(阀门);
}
if(i == 2 * LED_ON_THRESHOLD)
{
我= 0;
}
};
}
其他未做修改,可以含量长温度值。
驱动词数量参考sdk通信的dht11.c设计的,dht11.c也是1wire通信的。
你好,
请描述下你在“ble系统”中,对dht11移动接口的使用方案。
BLE系统运行在rw内核之上,是一世基于消息机的内核;写应用程时机,需要注意不再有阻塞,否则会导致系统系统时代变差,批发看门狗死性等。
在app_htpt_task.cn china中的app_htpt_timer_handler遇到中有一个个获取的语句app_htpt_env.temp_value = ds18b20_get_tem();使用这个函数后后死手机了
但仅仅让系统行行自加,是可以正确常这个温度值的,app_htpt_env.temp_value + = 0x01;
静态int app_htpt_timer_handler(ke_msg_id_t const msgid,
void const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
if(ke_state_get(dest_id)== app_connected)
{
//随机产生温度值
UINT32_T RAND_TEMP_STEP;
//符号用于了解温度是否会增加或减少
INT8_T标志;
//生成温度步骤
rand_temp_step = 22;
//增加或减少温度值
符号=(int8_t)(rand_temp_step&0x00000001);
如果(!标志)
{
符号= -1;
}
//app_htpt_env.temp_value + = sign * rand_temp_step;
app_htpt_env.temp_value + = 0x01;//为了调试方向
//app_htpt_env.temp_value = ds18b20_get_tem();
//发送新的温度
app_htpt_temp_send();
//重置计时器(如果我们在此,测量间隔不是0)计时器以时间为单位编程(tu是10ms)
ke_timer_set(app_htpt_timer,dest_id,200);
}
return(ke_msg_consumed);
}
app_htpt_task.c文章和app_htpt.c是自我从sdk3中间过来的文章,不能为啥sdk5中没有。别用加用官能在一起。用自给自然可以在手机上软件观察到数码是正当的,应该移植比较成功。
我是个菜鸟,第一起用这个和这个,还有好多不当的地方,请请正。
请问systick_wait()的次数是多重?当机时DS18B20_Get_tem()里代码停在这里,有什么什么信仰?
app_htpt_task.cc文件和app_htpt.c这这两文件时尚你们论坛论坛有一张有关的帖子,然后然后其他相似的app_xxx_task.cc文件和app_xxx.c,norips overs的,over可驾驶.systick_wait()参数最小的是3,最大是300000,最后一个值为主等待转换而等待等待250ms。
你好,
你的单线外设移动可驾驶机驾驶,功能正式;在有BLE功能的系统中,该动委会导致导致手机。
以上问题,基调之迹的讨论,猜测死机原因和你系统中有大大的阻塞有关。你应该想办法,把较大的阻塞(250ms)从你的外设动感中去除。
你好,
有没有关键词除的建议,别无相代的传感时的,这些跑时会见了,请延有没有好的方法代替这种时?
你好,
参考以下方:
代理是在大胆时期的中,喂狗并给予rw内核执行的机会。
这样做,需要注意防止形成。
建议实际应应用中,还销量设计一性合理的手机,通量APP_EASY_TIMER来动机机,实现实现时等方向。