qiqirachel 发表于 2013-12-20 02:19:51

NRF51822_temp_2_UART,这玩意温度读取不准么,还是我自己程序...

本帖最后由 qiqirachel 于 2013-12-20 02:34 编辑

额,用了网友的工程模版,加了个temp.h,读取芯片温度到UART发送到电脑,现实温度为20度(但是我的stm32内部传感器测得才13度)
莫非这玩意侧温准确度这么低?还是他自己发热比较厉害?

但是用手摸着,温度可以上到32度哇,奇怪了

顺便传上工程

下面是图

我爱电子制作 发表于 2013-12-20 08:47:56

个人经验,芯片内部的温度和现实的温度从来都没有准过,STM32 CC2530 CC2540这些的芯片内部温度和实际温度有出入。

CK345 发表于 2013-12-20 08:53:19

你校准一下在试试,看看是不是成线性

overheat 发表于 2013-12-20 14:53:30

用的是这个代码吗?

overheat 发表于 2013-12-20 14:58:14

家里有温度计吗?

qiqirachel 发表于 2013-12-20 20:30:59

overheat 发表于 2013-12-20 14:58
家里有温度计吗?

是啊,我直接用的就是那个历程,temp的值直接读出,显示,楼主位有代码

木有,我这是寝室,不是家哇

qiqirachel 发表于 2013-12-20 20:31:57

CK345 发表于 2013-12-20 08:53
你校准一下在试试,看看是不是成线性

你的意思是用个基准,调试一下,唉,麻烦,就这样了,准不准都无所谓了

qiqirachel 发表于 2013-12-20 20:33:11

我爱电子制作 发表于 2013-12-20 08:47
个人经验,芯片内部的温度和现实的温度从来都没有准过,STM32 CC2530 CC2540这些的芯片内部温度和实际温度 ...

个人经验,芯片内部的温度和现实的温度从来都没有准过,STM32 CC2530 CC2540这些的芯片内部温度和实际温度有出入。

----------------------------------------------------------------------------------------------------
                           感觉stm32温度会偏高个2度,其他的不太清楚,但是irf51822温度比stm32zet6温度偏高7度,不知为何

qiqirachel 发表于 2013-12-21 19:37:46

overheat 发表于 2013-12-20 14:58
家里有温度计吗?

问个问题,开发板上为何不引出5V电压脚呢,我用来放大小信号运放供电不太方便

还有,这以后还有例程么,开发板么例程不好玩啊,更新真是慢啊

qiqirachel 发表于 2013-12-21 20:16:41

overheat 发表于 2013-12-20 14:58
家里有温度计吗?

问个问题:我想要配置中断来做按键输入,但是不太懂初始化什么的问题

比如这个函数,输入值为通道号码,管脚,引起中断的原因
通道有0到3,这个通道具体怎么理解呢
管脚有32个我知道了
那么,后面的极性,上升沿,下降沿,或者跳变,这些怎么赋值呢,能给个历程看一下么
static __INLINE void nrf_gpiote_event_config(uint32_t channel_number, uint32_t pin_number, nrf_gpiote_polarity_t polarity)
{   
    /* Configure the channel as the caller expects */
    NRF_GPIOTE->CONFIG = (GPIOTE_CONFIG_MODE_Event << GPIOTE_CONFIG_MODE_Pos)   |
                                       ((uint32_t)pin_number   << GPIOTE_CONFIG_PSEL_Pos)   |
                                       ((uint32_t)polarity       << GPIOTE_CONFIG_POLARITY_Pos);

    /* Three NOPs are required to make sure configuration is written before setting tasks or getting events */
    __NOP();
    __NOP();
    __NOP();
   
    /* Clear the event that appears in some cases */
    NRF_GPIOTE->EVENTS_IN = 0;
}

overheat 发表于 2013-12-21 22:08:27

qiqirachel 发表于 2013-12-21 19:37
问个问题,开发板上为何不引出5V电压脚呢,我用来放大小信号运放供电不太方便

还有,这以后还有例程么, ...

nrf6310那个目录下面的所有例程都可以用,只要稍微修改一下头文件定义就可以了。

到年底了,超忙,忙完了会继续更新的!

overheat 发表于 2013-12-21 22:16:06

qiqirachel 发表于 2013-12-21 20:16
问个问题:我想要配置中断来做按键输入,但是不太懂初始化什么的问题

比如这个函数,输入值为通道号码, ...

你说的这个是芯片的GPIOTE功能,也就是gpio的task和event的意思,在nrf6310目录下有相应的代码可以参考。

这个模块的功能就是把以前我们经常使用的gpio拉高(set)或者拉低(clear)的命令,转化为task。用处就是跟PPI功能联合,不需要唤醒系统就自动的执行任务。
举个例子,比如电机驱动。我们经常会利用PWM来控制电机,那么就可以设置一个Timer,然后把Timer和GPIOTE通过PPI链接起来,Timer到时间自动触发GPIOTE让某个io脚电平变化,而不需要启动CPU。

还有event,可以用来检测io脚状态变化,比如连接button后。button按下会有个event出来,此时可以开始计时,button松开还会有个envet出来,此时结束计时。看看这个时间是否超过50ms,如果是就确认为有效按键,如果不是就是抖动。另外还能用来做超过2s的长按button的判断。

qiqirachel 发表于 2013-12-28 02:03:07

overheat 发表于 2013-12-21 22:16
你说的这个是芯片的GPIOTE功能,也就是gpio的task和event的意思,在nrf6310目录下有相应的代码可以参考。 ...

额,发现个问题,我板子的复位键是坏的
我上位机上定了个初始值,然后按钮加个数值,按复位,数值不会变回初始值,看来复位按键本来就是坏的了

overheat 发表于 2013-12-28 09:39:09

qiqirachel 发表于 2013-12-28 02:03
额,发现个问题,我板子的复位键是坏的
我上位机上定了个初始值,然后按钮加个数值,按复位,数值不会变 ...

复位和SWD的SWDIO是复用的,请看一下原理图。要硬件复位的话,请拔下调试器。否则请使用软件复位。

qiqirachel 发表于 2013-12-28 19:48:38

overheat 发表于 2013-12-28 09:39
复位和SWD的SWDIO是复用的,请看一下原理图。要硬件复位的话,请拔下调试器。否则请使用软件复位。 ...

额,我没有接JLINK,好像真的是坏了

opiviqo 发表于 2014-11-6 14:14:58

overheat 发表于 2013-12-21 22:16
你说的这个是芯片的GPIOTE功能,也就是gpio的task和event的意思,在nrf6310目录下有相应的代码可以参考。 ...

哥们   这个中断多个按键这里初始化怎么设置啊?
单个:
void EXIT_Init(void)
{
    NRF_GPIOTE->CONFIG = (GPIOTE_CONFIG_POLARITY_HiToLo<<GPIOTE_CONFIG_POLARITY_Pos) | ( 17 <<GPIOTE_CONFIG_PSEL_Pos) | (GPIOTE_CONFIG_MODE_Event<<GPIOTE_CONFIG_MODE_Pos);
        NVIC_EnableIRQ(GPIOTE_IRQn);
        NRF_GPIOTE->INTENSET = GPIOTE_INTENSET_IN0_Set << GPIOTE_INTENCLR_IN0_Pos;
}

多个按键这里怎么设置?port?
页: [1]
查看完整版本: NRF51822_temp_2_UART,这玩意温度读取不准么,还是我自己程序...