NRF51822_temp_2_UART,这玩意温度读取不准么,还是我自己程序...
本帖最后由 qiqirachel 于 2013-12-20 02:34 编辑额,用了网友的工程模版,加了个temp.h,读取芯片温度到UART发送到电脑,现实温度为20度(但是我的stm32内部传感器测得才13度)
莫非这玩意侧温准确度这么低?还是他自己发热比较厉害?
但是用手摸着,温度可以上到32度哇,奇怪了
顺便传上工程
下面是图
个人经验,芯片内部的温度和现实的温度从来都没有准过,STM32 CC2530 CC2540这些的芯片内部温度和实际温度有出入。 你校准一下在试试,看看是不是成线性 用的是这个代码吗? 家里有温度计吗? overheat 发表于 2013-12-20 14:58
家里有温度计吗?
是啊,我直接用的就是那个历程,temp的值直接读出,显示,楼主位有代码
木有,我这是寝室,不是家哇 CK345 发表于 2013-12-20 08:53
你校准一下在试试,看看是不是成线性
你的意思是用个基准,调试一下,唉,麻烦,就这样了,准不准都无所谓了 我爱电子制作 发表于 2013-12-20 08:47
个人经验,芯片内部的温度和现实的温度从来都没有准过,STM32 CC2530 CC2540这些的芯片内部温度和实际温度 ...
个人经验,芯片内部的温度和现实的温度从来都没有准过,STM32 CC2530 CC2540这些的芯片内部温度和实际温度有出入。
----------------------------------------------------------------------------------------------------
感觉stm32温度会偏高个2度,其他的不太清楚,但是irf51822温度比stm32zet6温度偏高7度,不知为何 overheat 发表于 2013-12-20 14:58
家里有温度计吗?
问个问题,开发板上为何不引出5V电压脚呢,我用来放大小信号运放供电不太方便
还有,这以后还有例程么,开发板么例程不好玩啊,更新真是慢啊 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;
} qiqirachel 发表于 2013-12-21 19:37
问个问题,开发板上为何不引出5V电压脚呢,我用来放大小信号运放供电不太方便
还有,这以后还有例程么, ...
nrf6310那个目录下面的所有例程都可以用,只要稍微修改一下头文件定义就可以了。
到年底了,超忙,忙完了会继续更新的! 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的判断。 overheat 发表于 2013-12-21 22:16
你说的这个是芯片的GPIOTE功能,也就是gpio的task和event的意思,在nrf6310目录下有相应的代码可以参考。 ...
额,发现个问题,我板子的复位键是坏的
我上位机上定了个初始值,然后按钮加个数值,按复位,数值不会变回初始值,看来复位按键本来就是坏的了 qiqirachel 发表于 2013-12-28 02:03
额,发现个问题,我板子的复位键是坏的
我上位机上定了个初始值,然后按钮加个数值,按复位,数值不会变 ...
复位和SWD的SWDIO是复用的,请看一下原理图。要硬件复位的话,请拔下调试器。否则请使用软件复位。 overheat 发表于 2013-12-28 09:39
复位和SWD的SWDIO是复用的,请看一下原理图。要硬件复位的话,请拔下调试器。否则请使用软件复位。 ...
额,我没有接JLINK,好像真的是坏了 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]