Discuz! Board

标题: NRF51822 Keil5环境设置 [打印本页]

作者: wufeijian    时间: 2016-12-4 16:22
标题: NRF51822 Keil5环境设置
买了青风电子的开发板,里面的资料代码都是keil4下面的,直接在keil5上面无法编译通过,我就自己建工程使用自带的sdk怎么编译都不通过:
使用库文件
[attach]1509[/attach]
1、
图中这样设置就编译不通过,会提示xxxx.o文件
[attach]1510[/attach]
.\Objects\ble_led_nRF51822_PACK.axf: error: L6002U: Could not open file .\objects\bsp.o: No such file or directory
[attach]1511[/attach]
2、
如果勾上创建库,编译就通过了,但是无法下载
[attach]1512[/attach]
[attach]1513[/attach]
这个是为什么,有没有哪位大锅可以帮我解决一下!


作者: wufeijian    时间: 2016-12-4 16:31
另外我查看过keil里面自带的例程,没有这是用创建库,没有任何问题,然后我按照例程的设置,还是不行,郁闷啊
作者: Eric    时间: 2016-12-4 22:04
我也是自己建的KEIL5工程,可以编译、下载,运行正常。[attach]1514[/attach]
main.c如下:
#include "nrf51.h"
#include  "led.h"
#include  "uart.h"
#include "nrf_delay.h"
#include  "time.h"
int main(void)
{
         LED_Init();
        USART_Configuration();
    while (1)
    {
        printf("hello\n");
        LED1_Open();
        LED2_Close();
        nrf_delay_ms(1000);
        LED2_Open();
        LED1_Close();
        nrf_delay_ms(1000);               
        LED1_Toggle();
        nrf_timer_delay_ms(TIMER0, TIMER_DELAY_MS);  
        LED1_Toggle();
        nrf_timer_delay_ms(TIMER1, TIMER_DELAY_MS);
        LED1_Toggle();
        nrf_timer_delay_ms(TIMER2, TIMER_DELAY_MS);                       
    }
}

用的是s110,
[attach]1515[/attach]
[attach]1516[/attach]
[attach]1517[/attach]
据说这个define很重要,一定要有。
[attach]1518[/attach]
[attach]1519[/attach]
新建工程,先选MCU,然后添加相应的设备、库文件、驱动文件,main文件,设置好include路径,然后编译,下载或debug都正常。


作者: Eric    时间: 2016-12-4 22:10
我把工程文件附上,keil5的确比keil4要强,尤其是添加device的时候,相互的依赖关系一目了然。
作者: wufeijian    时间: 2017-1-5 16:45
Eric 发表于 2016-12-4 22:10
我把工程文件附上,keil5的确比keil4要强,尤其是添加device的时候,相互的依赖关系一目了然。

谢谢,现在用协议栈在使用过程中,
[attach]1522[/attach]
SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL);
这个函数无法执行通过,编译没有问题,一直搞不清楚这个函数的作用,求指导

作者: Eric    时间: 2017-1-6 15:25
貌似keil5要用SDK10.0或以上的才行。

或者用聚码SDK,那里面的设置很简单,重新烧聚码的协议栈,不能用官方的协议栈。百度一下聚码SDK.
作者: aeqw    时间: 2017-2-14 09:02
wufeijian 发表于 2017-1-5 16:45
谢谢,现在用协议栈在使用过程中,

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL); ...

板子上面有32768的震盪器嗎?

作者: wufeijian    时间: 2017-5-14 21:07
aeqw 发表于 2017-2-14 09:02
板子上面有32768的震盪器嗎?

有的:):):):):):):):):):):)
作者: admin    时间: 2017-5-19 22:11
wufeijian 发表于 2017-1-5 16:45
谢谢,现在用协议栈在使用过程中,

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, NULL); ...

这个函数就是选择协议栈时钟的,你到底是选择32.768K外部时钟作为协议栈时钟,还是选择内部RC
作者: peteryu    时间: 2022-6-10 18:39
谢谢分享,学习学习。





欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3