1、平台的条件
1.1 软件平台:sdk14.2
1.2 硬件平台: nrf52832
2 说明:
只是介绍代码怎么使用,直接点
QQ: 1297311998 ,如果有什么问题,请高手不吝赐教
2、如何使用
2.1 添加文件
nrf_drv_uart.c(路径:components\drivers_nrf\uart)
和app_uart.c(路径:components\libraries\uart)
注意: 没用fifo的方式
2.2 添加.h文件
#ifndef SIMPLE_UART_H__
#define SIMPLE_UART_H__
#include <stdbool.h>
#include <stdint.h>
// 引脚定义------------、
#define Rx_PIN 8 //
#define Tx_PIN 9 //
//#define HWFC true
#define MAX_TEST_DATA_BYTES (15U) /**< max number of test bytes to be used for tx and rx. */
#define UART_TX_BUF_SIZE 256 /**< UART TX buffer size. */
#define UART_RX_BUF_SIZE 256 /**< UART RX buffer size. */
void init_simple_uart(void);
void uint_simple_uart(void);
void uart_send(uint8_t *str,uint16_t len);
void task_process_uart_data(void);
#endif
2.3 .c 文件
uart 初始化
static 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 init_simple_uart(void)
{
uint32_t err_code;
const app_uart_comm_params_t comm_params =
{
{
Rx_PIN,
Tx_PIN,
0,
0,
APP_UART_FLOW_CONTROL_DISABLED,
false,
NRF_UART_BAUDRATE_9600
},
} ;
APP_UART_FIFO_INIT(&comm_params,
UART_RX_BUF_SIZE,
UART_TX_BUF_SIZE,
uart_error_handle,
APP_IRQ_PRIORITY_LOWEST,
err_code);
APP_ERROR_CHECK(err_code);
}
uart send data
void uart_send(uint8_t *str,uint16_t len)
{
uint16_t i,counter;
for(i=0;i<len;i++)
{
counter=0;
while(NRF_SUCCESS!=app_uart_put(str[i]) && counter++<16000);
}
}
uart 接收数据,放在main函数
void task_process_uart_data(void)
{
#define TIME_OUT_MS (100/10)
#define BUF_MAX_LEN 100
uint8_t dataout;
static uint8_t sta=0,buf[BUF_MAX_LEN+3],len,left,cs;
while(NRF_SUCCESS== app_uart_get(&dataout))
{
RTT_UART_LOG("out:%02x\r\n",dataout);
}
return;
}
接收函数的执行
int main(void)
{
Peri_init();
ble_Init();
start_ibeacon_timer();
sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE);
BLE_RTT("DEVICE REST : \r\n ");
for (;;)
{
FeedWdog();
power_manage();
task_1s();
// uart 接收函数
task_process_uart_data();
}
}
关闭uart
void uint_simple_uart(void)
{
app_uart_close();
}
可以加入QQ群:687360507
与大伙沟通交流,技术在于分享而进步