|

楼主 |
发表于 2016-12-13 14:51:47
|
显示全部楼层
main所有代码
- #include <stdint.h>
- #include "nrf_delay.h"
- #include "nrf_gpio.h"
- #include "app_uart.h"
- #include "app_error.h"
- #include "boards.h"
- #include "nrf_drv_timer.h"
- #include "bsp.h"
- #include "nrf.h"
- #define UART_RX_BUF_SIZE 256
- #define UART_TX_BUF_SIZE 256
- const nrf_drv_timer_t TIMER_LED = NRF_DRV_TIMER_INSTANCE(0);
- const uint8_t leds_list[LEDS_NUMBER] = LEDS_LIST;
- void uart_error_handle(app_uart_evt_t * p_event)
- {
- if (p_event->evt_type == APP_UART_COMMUNICATION_ERROR)
- {
- APP_ERROR_HANDLER(p_event->data.error_communication);
- }
- else if (p_event->evt_type == APP_UART_FIFO_ERROR)
- {
- APP_ERROR_HANDLER(p_event->data.error_code);
- }
- }
- void timer_led_event_handler(nrf_timer_event_t event_type, void* p_context)
- {
- static uint32_t i;
- uint32_t led_to_invert = (1 << leds_list[(i++) % LEDS_NUMBER]);
-
- switch(event_type)
- {
- case NRF_TIMER_EVENT_COMPARE0:
- //LEDS_INVERT(led_to_invert);
- nrf_gpio_pins_toggle(LEDS_MASK);
- break;
-
- default:
- //Do nothing.
- break;
- }
- }
- int main()
- {
- uint8_t err_code;
- uint8_t rx;
- uint32_t time_ms = 500; //Time(in miliseconds) between consecutive compare events.
- uint32_t time_ticks;
- const app_uart_comm_params_t comm_params =
- {
- RX_PIN_NUMBER,//òy½Å¿éèÎòaÅäÖÃ
- TX_PIN_NUMBER,
- RTS_PIN_NUMBER,
- CTS_PIN_NUMBER,
- APP_UART_FLOW_CONTROL_DISABLED, //ÎTá÷¿ØÖÆ
- false,
- UART_BAUDRATE_BAUDRATE_Baud115200 //2¨ìØÂê115200bps
- };
- APP_UART_FIFO_INIT(&comm_params,
- UART_RX_BUF_SIZE,
- UART_TX_BUF_SIZE,
- uart_error_handle,
- APP_IRQ_PRIORITY_LOW,
- err_code);
- APP_ERROR_CHECK(err_code);
-
- err_code = nrf_drv_timer_init(&TIMER_LED, NULL, timer_led_event_handler);
- APP_ERROR_CHECK(err_code);
- time_ticks = nrf_drv_timer_ms_to_ticks(&TIMER_LED, time_ms);
- nrf_drv_timer_extended_compare(&TIMER_LED, NRF_TIMER_CC_CHANNEL0, time_ticks, NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK, true);
- nrf_drv_timer_enable(&TIMER_LED);
-
- // nrf_gpio_cfg_output(LED_1);//ÅäÖÃòy½ÅÎaêä3ö
- // nrf_gpio_pin_set(LED_1);
- nrf_gpio_range_cfg_output(LED_START,LED_STOP);
- nrf_gpio_pins_set(LEDS_MASK);
- nrf_gpio_range_cfg_input(BUTTON_START,BUTTON_STOP,NRF_GPIO_PIN_PULLUP);
-
- while(1)
- {
-
- while(app_uart_get(&rx) != NRF_SUCCESS)
- {
- if(nrf_gpio_pin_read(BUTTON_1) == 0)//¶áè¡òy½Å
- {
- nrf_gpio_pin_clear(LED_1);
- printf("LED1_ON\n");
- while(nrf_gpio_pin_read(BUTTON_1) == 0);
- nrf_gpio_pin_set(LED_1);
- printf("LED1_OFF\n");
- }
- }
- switch(rx)
- {
- case '1':nrf_gpio_pin_clear(LED_1);break;
- case '2':nrf_gpio_pin_clear(LED_2);break;
- case '3':nrf_gpio_pin_clear(LED_3);break;
- case '4':nrf_gpio_pin_clear(LED_4);break;
- default: printf("ERRO\n");break;
- }
- // if(nrf_gpio_pin_read(BUTTON_2) == 0)//¶áè¡òy½Å
- //
- // nrf_gpio_pin_clear(LED_2);
- //
- // else
- // nrf_gpio_pin_set(LED_2);
- // if(nrf_gpio_pin_read(BUTTON_3) == 0)//¶áè¡òy½Å
- // nrf_gpio_pin_clear(LED_3);
- // else
- // nrf_gpio_pin_set(LED_3);
- // if(nrf_gpio_pin_read(BUTTON_4) == 0)//¶áè¡òy½Å
- // nrf_gpio_pin_clear(LED_4);
- // else
- // nrf_gpio_pin_set(LED_4);
- }
-
- }
复制代码 |
|