本系列作为个人回顾分享。
只分享我目前自学到的。
首先说明下,我是一目的为要,不太思考内部
说下nordic关于uart与很多的文件分为硬件层和应用层的
使用时需要使能以及设置某些参数,具体设置内容在官方API中的某某configuration中有写
在configuration中的配置内容在sdk_cofig.h中进行配置
这里我用的是FIFO的方法
#define UART_ENABLED 1
#define UART0_ENABLED 1
#define APP_UART_ENABLED 1
#define APP_FIFO_ENABLED 1
然后添加app_uart_fifo.c
这个是应用文件,使用uart用这个文件就好(当然还要其他文件的)
初始化程序
void uart_init()
{
uint32_t err_code;
const app_uart_comm_params_t uart_params =
{
.rx_pin_no = 6,
.tx_pin_no = 8,
.rts_pin_no = 0,
.cts_pin_no = 0,
.flow_control = APP_UART_FLOW_CONTROL_DISABLED,
.use_parity = false,
.baud_rate = NRF_UART_BAUDRATE_115200,
};//uart参数配置
APP_UART_FIFO_INIT( &uart_params,
RX_BUF_SIZE,
TX_BUF_SIZE,
uart_error_event,//uart事件触发函数
APP_IRQ_PRIORITY_LOWEST,
err_code);
APP_ERROR_CHECK(err_code);//事件校验
}
其中APP_ERROR_CHECK是在app_error.h文件中
当uart触发事件时会进入uart_error_event函数
如果是读取事件,事件类型为APP_UART_DATA_READY
使用app_uart_get可以读取接受的数据
使用app_uart_put为发送数据
使用过程是这样
然后些函数的头文件是app_uart.h和app_error.h
其他的
遇到这个添加c文件
遇到这个添加头文件路径
#ifndef UART_ENABLED
#define UART_ENABLED 1
#endif
#if UART_ENABLED
#ifndef UART_DEFAULT_CONFIG_HWFC
#define UART_DEFAULT_CONFIG_HWFC 0
#endif
#ifndef UART_DEFAULT_CONFIG_PARITY
#define UART_DEFAULT_CONFIG_PARITY 0
#endif
#ifndef UART_DEFAULT_CONFIG_BAUDRATE
#define UART_DEFAULT_CONFIG_BAUDRATE 30801920
#endif
#ifndef UART_DEFAULT_CONFIG_IRQ_PRIORITY
#define UART_DEFAULT_CONFIG_IRQ_PRIORITY 7
#endif
#ifndef NRFX_UART0_ENABLED
#define NRFX_UART0_ENABLED 0
#endif
#ifndef NRFX_UARTE0_ENABLED
#define NRFX_UARTE0_ENABLED 1
#endif
#ifndef NRFX_UARTE1_ENABLED
#define NRFX_UARTE1_ENABLED 0
#endif
#endif
以UART_打头的是引用层的配置nrf_drv_uart的参数配置,
如果直接配置,那么下面这些模式下的参数配置等于上面的值
#ifndef NRFX_UART0_ENABLED
#define NRFX_UART0_ENABLED 0
#endif
#ifndef NRFX_UARTE0_ENABLED
#define NRFX_UARTE0_ENABLED 1
#endif
#ifndef NRFX_UARTE1_ENABLED
#define NRFX_UARTE1_ENABLED 0
#endif