修复Yoda条件(常量右置)与函数定义括号同行

- net_select.c/net_socket.c 共 62 处 Yoda 条件改为常量在右(规范 6.3.1)

- 11 个文件 58 处函数定义左大括号由换行改为与右括号同行(规范 4.4.2)
This commit is contained in:
2026-09-01 16:57:34 +08:00
parent bb76cfd779
commit 02c10fa5ef
13 changed files with 111 additions and 169 deletions
+21 -21
View File
@@ -60,12 +60,12 @@ int net_select(int nfds, net_fd_set_t *readfds, net_fd_set_t *writefds,
int i;
/* 检查输入参数合法性 */
if ((0 >= nfds) || (NET_MAX_SOCKETS < nfds)) {
if ((nfds <= 0) || (nfds > NET_MAX_SOCKETS)) {
return -1;
}
/* 计算超时时间(毫秒) */
if (NULL != timeout) {
if (timeout != NULL) {
timeout_ms = (uint32_t)(timeout->tv_sec * 1000) +
(uint32_t)(timeout->tv_usec / 1000);
}
@@ -80,12 +80,12 @@ int net_select(int nfds, net_fd_set_t *readfds, net_fd_set_t *writefds,
for (i = 0; i < nfds && i < NET_MAX_SOCKETS; i++) {
const net_sock_t *p_sock = net_get_sock(i);
if (NULL == p_sock) {
if (p_sock == NULL) {
continue;
}
/* 检查可读事件 */
if ((NULL != readfds) && NET_FD_ISSET(i, readfds)) {
if ((readfds != NULL) && NET_FD_ISSET(i, readfds)) {
if (check_socket_readable(i)) {
NET_FD_SET(i, &result_read);
ready_count++;
@@ -93,7 +93,7 @@ int net_select(int nfds, net_fd_set_t *readfds, net_fd_set_t *writefds,
}
/* 检查可写事件 */
if ((NULL != writefds) && NET_FD_ISSET(i, writefds)) {
if ((writefds != NULL) && NET_FD_ISSET(i, writefds)) {
if (check_socket_writable(i)) {
NET_FD_SET(i, &result_write);
ready_count++;
@@ -101,7 +101,7 @@ int net_select(int nfds, net_fd_set_t *readfds, net_fd_set_t *writefds,
}
/* 检查异常事件 */
if ((NULL != exceptfds) && NET_FD_ISSET(i, exceptfds)) {
if ((exceptfds != NULL) && NET_FD_ISSET(i, exceptfds)) {
if (check_socket_error(i)) {
NET_FD_SET(i, &result_except);
ready_count++;
@@ -110,13 +110,13 @@ int net_select(int nfds, net_fd_set_t *readfds, net_fd_set_t *writefds,
}
/* 有事件就绪,返回 */
if (0 < ready_count) {
if (ready_count > 0) {
break;
}
/* 超时检测 */
if (NULL != timeout) {
if ((0 < timeout_ms) &&
if (timeout != NULL) {
if ((timeout_ms > 0) &&
((HAL_GetTick() - start_tick) >= timeout_ms)) {
break; /* 超时返回 0 */
}
@@ -127,13 +127,13 @@ int net_select(int nfds, net_fd_set_t *readfds, net_fd_set_t *writefds,
}
/* 复制结果集合 */
if (NULL != readfds) {
if (readfds != NULL) {
readfds->fd_bits = result_read.fd_bits;
}
if (NULL != writefds) {
if (writefds != NULL) {
writefds->fd_bits = result_write.fd_bits;
}
if (NULL != exceptfds) {
if (exceptfds != NULL) {
exceptfds->fd_bits = result_except.fd_bits;
}
@@ -158,7 +158,7 @@ int net_poll_events(net_pollfd_t *fds, int nfds, int timeout) {
int ready = 0;
int i;
if ((NULL == fds) || (0 >= nfds)) {
if ((fds == NULL) || (nfds <= 0)) {
return -1;
}
@@ -172,7 +172,7 @@ int net_poll_events(net_pollfd_t *fds, int nfds, int timeout) {
fds[i].revents = 0;
/* 检查 fd 有效性 */
if ((0 > fds[i].fd) || (NET_MAX_SOCKETS <= fds[i].fd)) {
if ((fds[i].fd < 0) || (fds[i].fd >= NET_MAX_SOCKETS)) {
fds[i].revents |= NET_POLLNVAL;
ready++;
continue;
@@ -180,7 +180,7 @@ int net_poll_events(net_pollfd_t *fds, int nfds, int timeout) {
const net_sock_t *p_sock = net_get_sock(fds[i].fd);
if (NULL == p_sock) {
if (p_sock == NULL) {
fds[i].revents |= NET_POLLNVAL;
ready++;
continue;
@@ -215,12 +215,12 @@ int net_poll_events(net_pollfd_t *fds, int nfds, int timeout) {
}
}
if (0 < ready) {
if (ready > 0) {
break;
}
/* 超时检测 */
if (0 <= timeout) {
if (timeout >= 0) {
if ((HAL_GetTick() - start_tick) >= (uint32_t)timeout) {
break;
}
@@ -250,7 +250,7 @@ static int check_socket_readable(int sockfd) {
const net_sock_t *p_sock;
p_sock = net_get_sock(sockfd);
if (NULL == p_sock) {
if (p_sock == NULL) {
return 0;
}
@@ -280,7 +280,7 @@ static int check_socket_writable(int sockfd) {
const net_sock_t *p_sock;
p_sock = net_get_sock(sockfd);
if (NULL == p_sock) {
if (p_sock == NULL) {
return 0;
}
@@ -307,12 +307,12 @@ static int check_socket_error(int sockfd) {
const net_sock_t *p_sock;
/* 无效 fd 视为错误 */
if ((0 > sockfd) || (NET_MAX_SOCKETS <= sockfd)) {
if ((sockfd < 0) || (sockfd >= NET_MAX_SOCKETS)) {
return 1;
}
p_sock = net_get_sock(sockfd);
if (NULL == p_sock) {
if (p_sock == NULL) {
return 1; /* 未使用的 Socket 视为错误 */
}
+32 -32
View File
@@ -129,7 +129,7 @@ int net_init(const char *ip, const char *mask, const char *gateway) {
ch395f_set_keepalive_cnt(3); /* 最多探 3 次*/
/* 设置网络参数(必须在 INIT_CH395 之前调用 */
if (NULL != ip) {
if (ip != NULL) {
uint8_t ip_arr[4];
uint8_t mask_arr[4];
uint8_t gw_arr[4];
@@ -300,7 +300,7 @@ int net_poll(void) {
void net_process_messages(void) {
net_msg_t msg;
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
return;
}
@@ -308,7 +308,7 @@ void net_process_messages(void) {
switch (msg.type) {
case NET_MSG_SEND: {
net_sock_t *p_sock = net_get_sock(msg.sockfd);
if (NULL == p_sock || p_sock->state != NET_SOCK_STATE_ESTABLISHED) {
if (p_sock == NULL || p_sock->state != NET_SOCK_STATE_ESTABLISHED) {
msg.result = -1;
} else {
msg.result = net_send_locked(p_sock, msg.buf, msg.len);
@@ -317,7 +317,7 @@ void net_process_messages(void) {
}
case NET_MSG_RECV: {
net_sock_t *p_sock = net_get_sock(msg.sockfd);
if (NULL == p_sock) {
if (p_sock == NULL) {
msg.result = -1;
} else {
msg.result = net_recv_locked(p_sock, msg.buf, msg.len, msg.flags);
@@ -326,7 +326,7 @@ void net_process_messages(void) {
}
case NET_MSG_CLOSE: {
net_sock_t *p_sock = net_get_sock(msg.sockfd);
if (NULL == p_sock) {
if (p_sock == NULL) {
msg.result = -1;
} else {
msg.result = net_close_locked(p_sock);
@@ -346,7 +346,7 @@ void net_process_messages(void) {
case NET_MSG_ACCEPT: {
struct net_sockaddr *p_addr = (struct net_sockaddr *)msg.buf;
int addrlen = msg.len;
int *p_addrlen = (NULL != p_addr && addrlen > 0) ? &addrlen : NULL;
int *p_addrlen = (p_addr != NULL && addrlen > 0) ? &addrlen : NULL;
msg.result = net_accept_locked(msg.sockfd, p_addr, p_addrlen);
break;
}
@@ -423,7 +423,7 @@ int net_bind(int sockfd, const struct net_sockaddr *addr, int addrlen) {
return -1;
}
if (NULL == addr || addrlen < (int)sizeof(struct net_sockaddr_in)) {
if (addr == NULL || addrlen < (int)sizeof(struct net_sockaddr_in)) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
@@ -567,7 +567,7 @@ int net_listen(int sockfd) {
return -1;
}
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
s_net_errno = NET_ERR;
return -1;
}
@@ -627,7 +627,7 @@ static int net_accept_locked(int sockfd, struct net_sockaddr *addr, int *addrlen
}
/* 填充对端地址(若调用方需要) */
if (NULL != addr && NULL != addrlen) {
if (addr != NULL && addrlen != NULL) {
struct net_sockaddr_in *p_addr_in = (struct net_sockaddr_in *)addr;
p_addr_in->sin_family = NET_AF_INET;
p_addr_in->sin_port = net_htons(p_listen_sock->remote_port);
@@ -656,7 +656,7 @@ int net_accept(int sockfd, struct net_sockaddr *addr, int *addrlen) {
return -1;
}
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
s_net_errno = NET_ERR;
return -1;
}
@@ -664,7 +664,7 @@ int net_accept(int sockfd, struct net_sockaddr *addr, int *addrlen) {
msg.type = NET_MSG_ACCEPT;
msg.sockfd = sockfd;
msg.buf = (void *)addr;
msg.len = (NULL != addrlen) ? *addrlen : 0;
msg.len = (addrlen != NULL) ? *addrlen : 0;
msg.caller = xTaskGetCurrentTaskHandle();
msg.result = -1;
@@ -679,7 +679,7 @@ int net_accept(int sockfd, struct net_sockaddr *addr, int *addrlen) {
msg.result = (int)s_notified;
}
if (NULL != addrlen &&NULL != addr) {
if (addrlen != NULL &&addr != NULL) {
*addrlen = sizeof(struct net_sockaddr_in);
}
@@ -709,12 +709,12 @@ int net_connect(int sockfd, const struct net_sockaddr *addr, int addrlen) {
return -1;
}
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
s_net_errno = NET_ERR;
return -1;
}
if (NULL == addr || addrlen < (int)sizeof(struct net_sockaddr_in)) {
if (addr == NULL || addrlen < (int)sizeof(struct net_sockaddr_in)) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
@@ -767,7 +767,7 @@ static int net_connect_locked(int sockfd, const struct net_sockaddr *addr, int a
return -1;
}
if (NULL == addr || addrlen < (int)sizeof(struct net_sockaddr_in)) {
if (addr == NULL || addrlen < (int)sizeof(struct net_sockaddr_in)) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
@@ -865,7 +865,7 @@ static int net_send_locked(net_sock_t *p_sock, const void *buf, int len) {
uint32_t tick_start;
int sockfd = (int)(p_sock - s_net_socks);
if (NULL == buf || len <= 0) {
if (buf == NULL || len <= 0) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
@@ -928,7 +928,7 @@ static int net_recv_locked(net_sock_t *p_sock, void *buf, int len, int flags) {
uint32_t tick_start;
int sockfd = (int)(p_sock - s_net_socks);
if (NULL == buf || len <= 0) {
if (buf == NULL || len <= 0) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
@@ -1117,7 +1117,7 @@ int net_send(int sockfd, const void *buf, int len, int flags) {
}
/* ---- 2. 运行环境检查:消息队列须已创建(网络层已初始化) ---- */
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
s_net_errno = NET_ERR; /* 网络层未初始化 */
return -1;
}
@@ -1172,7 +1172,7 @@ int net_recv(int sockfd, void *buf, int len, int flags) {
return -1;
}
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
s_net_errno = NET_ERR;
return -1;
}
@@ -1219,7 +1219,7 @@ int net_close(int sockfd) {
return -1;
}
if (NULL == netMsgQueueHandle) {
if (netMsgQueueHandle == NULL) {
s_net_errno = NET_ERR;
return -1;
}
@@ -1277,13 +1277,13 @@ int net_sendto(int sockfd, const void *buf, int len, int flags,
return -1;
}
if (NULL == buf || len <= 0) {
if (buf == NULL || len <= 0) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
/* UDP 模式:设置目标地址 */
if (NULL != dest_addr && addrlen >= (int)sizeof(struct net_sockaddr_in)) {
if (dest_addr != NULL && addrlen >= (int)sizeof(struct net_sockaddr_in)) {
p_addr_in = (const struct net_sockaddr_in *)dest_addr;
/* 转换 IP 为大端数组(同 TCP 客户端,set_des_ip 期望大端) */
@@ -1365,7 +1365,7 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
return -1;
}
if (NULL == buf || len <= 0) {
if (buf == NULL || len <= 0) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
@@ -1384,7 +1384,7 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
recv_len -= 8;
/* 填充来源地址 */
if (NULL != src_addr &&NULL != addrlen &&
if (src_addr != NULL &&addrlen != NULL &&
*addrlen >= (int)sizeof(struct net_sockaddr_in)) {
struct net_sockaddr_in *p_addr_in = (struct net_sockaddr_in *)src_addr;
p_addr_in->sin_family = NET_AF_INET;
@@ -1436,7 +1436,7 @@ int net_recvfrom(int sockfd, void *buf, int len, int flags,
* 函数说明:直接调用 net_send_locked 完成发送
*/
int net_send_sock(net_sock_t *p_sock, const void *buf, int len) {
if (NULL == p_sock) {
if (p_sock == NULL) {
s_net_errno = NET_ERR_BADF;
return -1;
}
@@ -1455,7 +1455,7 @@ int net_send_sock(net_sock_t *p_sock, const void *buf, int len) {
* 函数说明:直接操作 Socket 控制块,不经过消息队列。避免 netTask 向自身发送消息造成死锁
*/
int net_recv_sock(net_sock_t *p_sock, void *buf, int len, int flags) {
if (NULL == p_sock) {
if (p_sock == NULL) {
s_net_errno = NET_ERR_BADF;
return -1;
}
@@ -1470,7 +1470,7 @@ int net_recv_sock(net_sock_t *p_sock, void *buf, int len, int flags) {
* 函数说明:直接操作 Socket 控制块,不经过消息队列。TCP Socket 先断开连接再释放控制块
*/
int net_close_sock(net_sock_t *p_sock) {
if (NULL == p_sock) {
if (p_sock == NULL) {
s_net_errno = NET_ERR_BADF;
return -1;
}
@@ -1530,7 +1530,7 @@ uint32_t net_inet_addr(const char *cp) {
uint32_t addr = 0;
int i;
if (NULL == cp) {
if (cp == NULL) {
return 0;
}
@@ -1561,7 +1561,7 @@ uint32_t net_inet_addr(const char *cp) {
char *net_inet_ntoa(uint32_t addr, char *buf) {
uint32_t naddr = NET_NTOHL(addr);
if (NULL == buf) {
if (buf == NULL) {
return NULL;
}
@@ -1787,7 +1787,7 @@ static void handle_timeout_event(net_sock_t *p_sock) {
* 2. 回调参数为 ch395_sock、event、event_arg
*/
static void fire_event(net_sock_t *p_sock, net_event_t event) {
if (NULL != p_sock->event_cb) {
if (p_sock->event_cb != NULL) {
p_sock->event_cb(p_sock->ch395_sock, event, p_sock->event_arg);
}
}
@@ -1805,7 +1805,7 @@ static void fire_event(net_sock_t *p_sock, net_event_t event) {
static void parse_ip_string(const char *str, uint8_t *ip_arr) {
int i;
if (NULL == str ||NULL == ip_arr) {
if (str == NULL ||ip_arr == NULL) {
return;
}
@@ -1864,7 +1864,7 @@ int net_getsockname(int sockfd, struct net_sockaddr *addr, int *addrlen) {
return -1;
}
if (NULL == addr ||NULL == addrlen || *addrlen < (int)sizeof(struct net_sockaddr_in)) {
if (addr == NULL ||addrlen == NULL || *addrlen < (int)sizeof(struct net_sockaddr_in)) {
s_net_errno = NET_ERR_INVAL;
return -1;
}
+8 -16
View File
@@ -40,8 +40,7 @@ rs485_handle_t g_rs485;
void rs485_init(rs485_handle_t *p_handle,
UART_HandleTypeDef *p_huart,
GPIO_TypeDef *p_dir_port,
uint16_t dir_pin)
{
uint16_t dir_pin) {
p_handle->huart = p_huart;
p_handle->dir_port = p_dir_port;
p_handle->dir_pin = dir_pin;
@@ -71,8 +70,7 @@ void rs485_init(rs485_handle_t *p_handle,
HAL_StatusTypeDef rs485_transmit(rs485_handle_t *p_handle,
const uint8_t *p_data,
uint16_t len,
uint32_t timeout)
{
uint32_t timeout) {
HAL_StatusTypeDef status = HAL_OK;
if (timeout == 0U) {
@@ -106,8 +104,7 @@ HAL_StatusTypeDef rs485_transmit(rs485_handle_t *p_handle,
* HAL 自动调用 HAL_UARTEx_RxEventCallback 并返回已接收字节数。
* 用户须在回调中重新调用本函数重新开启接收。
*/
HAL_StatusTypeDef rs485_receive_start(rs485_handle_t *p_handle)
{
HAL_StatusTypeDef rs485_receive_start(rs485_handle_t *p_handle) {
p_handle->rx_size = 0;
return HAL_UARTEx_ReceiveToIdle_IT(p_handle->huart, p_handle->rx_buf, RS485_RX_BUF_SIZE);
}
@@ -120,8 +117,7 @@ HAL_StatusTypeDef rs485_receive_start(rs485_handle_t *p_handle)
* 限定条件:须在 HAL_UARTEx_RxEventCallback 中调用
* 函数说明:将 HAL 回调中接收到的数据大小回写到句柄的 rx_size 字段
*/
void rs485_rx_set_size(rs485_handle_t *p_handle, uint16_t size)
{
void rs485_rx_set_size(rs485_handle_t *p_handle, uint16_t size) {
p_handle->rx_size = size;
}
@@ -132,8 +128,7 @@ void rs485_rx_set_size(rs485_handle_t *p_handle, uint16_t size)
* 限定条件:须在 HAL_UARTEx_RxEventCallback 触发后调用
* 函数说明:获取 rx_size 字段中缓存的接收字节数
*/
uint16_t rs485_rx_get_size(const rs485_handle_t *p_handle)
{
uint16_t rs485_rx_get_size(const rs485_handle_t *p_handle) {
return p_handle->rx_size;
}
@@ -143,8 +138,7 @@ uint16_t rs485_rx_get_size(const rs485_handle_t *p_handle)
* 应用层接收钩子默认实现(弱符号,可被应用重定义)。
* 在中断上下文调用,仅做占位,业务解析由应用提供。
*/
__weak void rs485_on_rx(uint8_t *buf, uint16_t size)
{
__weak void rs485_on_rx(uint8_t *buf, uint16_t size) {
(void)buf;
(void)size;
}
@@ -154,8 +148,7 @@ __weak void rs485_on_rx(uint8_t *buf, uint16_t size)
* 当 RS-485 总线空闲超过 1 个字符时间后触发,由 HAL 自动调用。
* 注意:回调按实例分发,仅处理本驱动绑定的 UART,不写死 UART5。
*/
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) {
if (huart == g_rs485.huart) {
rs485_rx_set_size(&g_rs485, Size);
@@ -171,8 +164,7 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
* HAL UART 错误回调(ORE/NE/FE/PE 等)。
* 读 SR + DR 清除错误标志后重新开启接收,避免中断锁死。
*/
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) {
if (huart == g_rs485.huart) {
/* STM32F4 通过读 SR + DR 清除 ORE/NE/FE/PE 错误标志 */
(void)huart->Instance->SR;
+18 -36
View File
@@ -65,8 +65,7 @@ static void tpafe5160_read_channels(uint8_t count, int16_t *buf);
* 2. 确保 RD 为高、CONVST 为低
* 3. 等待 BUSY 释放(转换空闲)
*/
int tpafe5160_init(void)
{
int tpafe5160_init(void) {
/* 设置默认过采样:无过采样 (OS[2:0] = 000) */
tpafe5160_set_os(TPAFE5160_OS_NONE);
@@ -91,8 +90,7 @@ int tpafe5160_init(void)
* 限定条件:GPIO 已初始化
* 函数说明:通过 OS[2:0] 引脚设置过采样率,在下一次 BUSY 下降沿锁存生效
*/
void tpafe5160_set_os(tpafe5160_os_t os)
{
void tpafe5160_set_os(tpafe5160_os_t os) {
TPAFE5160_OS0(os & 0x01); /* OS0 = bit0 */
TPAFE5160_OS1((os >> 1) & 0x01); /* OS1 = bit1 */
TPAFE5160_OS2((os >> 2) & 0x01); /* OS2 = bit2 */
@@ -105,8 +103,7 @@ void tpafe5160_set_os(tpafe5160_os_t os)
* 限定条件:GPIO 已初始化
* 函数说明:产生 CONVST 脉冲上升沿,启动全部8通道同步采样与转换
*/
void tpafe5160_start_conv(void)
{
void tpafe5160_start_conv(void) {
TPAFE5160_CONVST_PULSE();
}
@@ -117,8 +114,7 @@ void tpafe5160_start_conv(void)
* 限定条件:已调用 tpafe5160_start_conv()
* 函数说明:轮询 BUSY 引脚等待下降沿
*/
int tpafe5160_wait_busy(uint32_t timeout_ms)
{
int tpafe5160_wait_busy(uint32_t timeout_ms) {
uint32_t tick_start = HAL_GetTick();
/* 等待 BUSY 释放(低电平表示空闲) */
@@ -138,8 +134,7 @@ int tpafe5160_wait_busy(uint32_t timeout_ms)
* 限定条件:GPIO 已初始化
* 函数说明:读取 BUSY 引脚电平
*/
uint8_t tpafe5160_is_busy(void)
{
uint8_t tpafe5160_is_busy(void) {
return (TPAFE5160_BUSY_READ() == GPIO_PIN_SET) ? 1 : 0;
}
@@ -152,8 +147,7 @@ uint8_t tpafe5160_is_busy(void)
* 2. 连续8次拉低RD读取各通道数据
* 3. 通过 FRSTDATA 验证第一通道
*/
int tpafe5160_read_all(int16_t *buf)
{
int tpafe5160_read_all(int16_t *buf) {
int ret = 0;
/* 启动转换 */
@@ -180,8 +174,7 @@ int tpafe5160_read_all(int16_t *buf)
* 限定条件:GPIO 已初始化
* 函数说明:启动转换并等待完成后,连续读取至指定通道
*/
int tpafe5160_read_channel(uint8_t channel, int16_t *value)
{
int tpafe5160_read_channel(uint8_t channel, int16_t *value) {
int ret = 0;
int16_t buf[TPAFE5160_CH_NUM] = {0};
@@ -207,8 +200,7 @@ int tpafe5160_read_channel(uint8_t channel, int16_t *value)
* ±10V量程时 LSB = 20V / 65536 ≈ 305.18μV
* 硬件 RANGE 引脚接 GND,默认 ±5V 量程
*/
float tpafe5160_to_voltage(int16_t raw)
{
float tpafe5160_to_voltage(int16_t raw) {
/* RANGE 接 GND → ±5V 量程,满量程 10V */
return (float)raw * (10.0f / 65536.0f);
}
@@ -220,8 +212,7 @@ float tpafe5160_to_voltage(int16_t raw)
* 限定条件:RD 为低或 CS 与 RD 已拉低
* 函数说明:读取 GPIOG->IDR 低16位,对应 DB[15:0]
*/
uint16_t tpafe5160_read_bus(void)
{
uint16_t tpafe5160_read_bus(void) {
return TPAFE5160_READ_BUS();
}
@@ -241,8 +232,7 @@ uint16_t tpafe5160_read_bus(void)
* t14 数据建立 ≤ 21ns → 数据在 RD 下降沿后 21ns 内有效
* 5 个 NOP (~30ns) 覆盖建立时间
*/
static void tpafe5160_read_channels(uint8_t count, int16_t *buf)
{
static void tpafe5160_read_channels(uint8_t count, int16_t *buf) {
uint8_t i;
for (i = 0; i < count; i++) {
@@ -272,8 +262,7 @@ static volatile uint8_t s_buf_sel = 0; /* 0 = 写 B / 读 A, 1 = 写 A / 读 B
* 限定条件:CubeMX 已完成 GPIO 和 NVIC 配置
* 函数说明:正常启动流程无需调用,仅在 irq_disable() 后需要重新使能时使用
*/
void tpafe5160_irq_enable(void)
{
void tpafe5160_irq_enable(void) {
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
}
@@ -284,8 +273,7 @@ void tpafe5160_irq_enable(void)
* 限定条件:已调用 tpafe5160_irq_enable()
* 函数说明:仅禁用 NVIC 中断,GPIO 配置保持 CubeMX 设定
*/
void tpafe5160_irq_disable(void)
{
void tpafe5160_irq_disable(void) {
HAL_NVIC_DisableIRQ(EXTI9_5_IRQn);
}
@@ -296,8 +284,7 @@ void tpafe5160_irq_disable(void)
* 限定条件:已调用 tpafe5160_irq_enable()
* 函数说明:产生 CONVST 脉冲,转换完成后由 EXTI 中断自动读取 8 通道数据
*/
void tpafe5160_start_conv_irq(void)
{
void tpafe5160_start_conv_irq(void) {
s_ready = 0;
TPAFE5160_CONVST_PULSE();
}
@@ -309,8 +296,7 @@ void tpafe5160_start_conv_irq(void)
* 限定条件:中断模式已启用
* 函数说明:在 EXTI 回调中置位,主循环读取后需调用 tpafe5160_clear_ready() 清除
*/
uint8_t tpafe5160_data_ready(void)
{
uint8_t tpafe5160_data_ready(void) {
return s_ready;
}
@@ -321,8 +307,7 @@ uint8_t tpafe5160_data_ready(void)
* 限定条件:中断模式已启用
* 函数说明:主循环处理完数据后调用
*/
void tpafe5160_clear_ready(void)
{
void tpafe5160_clear_ready(void) {
s_ready = 0;
}
@@ -333,8 +318,7 @@ void tpafe5160_clear_ready(void)
* 限定条件:tpafe5160_data_ready() 返回 1 时调用
* 函数说明:双缓冲切换,ISR 写另一个缓冲区,主循环安全读取当前缓冲区
*/
const int16_t* tpafe5160_get_buf(void)
{
const int16_t* tpafe5160_get_buf(void) {
return (s_buf_sel == 0) ? s_buf_a : s_buf_b;
}
@@ -345,13 +329,11 @@ const int16_t* tpafe5160_get_buf(void)
* 限定条件:BUSY EXTI 已使能
* 函数说明:转换完成后自动读取 8 通道数据到缓冲区,耗时约 0.5µs (168MHz)
*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
tpafe5160_exti_handler(GPIO_Pin);
}
void tpafe5160_exti_handler(uint16_t GPIO_Pin)
{
void tpafe5160_exti_handler(uint16_t GPIO_Pin) {
if (GPIO_Pin != TP_BUSY_Pin) {
return;
}