30 lines
836 B
C
30 lines
836 B
C
#include "user_gpio.h"
|
|
|
|
void user_write_gpio(communication_do_t *do_data)
|
|
{
|
|
uint8_t i = 0;
|
|
uint8_t start_addr = do_data->start_addr; // 写输出的起始地址
|
|
uint8_t length = do_data->num; // 写输出的数量
|
|
for (i = 0; i < length; i++)
|
|
{
|
|
if (do_data->data[i] == 0x01)
|
|
{
|
|
gpio_do_test(DO_1 + start_addr + i, GPIO_PIN_SET);
|
|
}
|
|
else
|
|
{
|
|
gpio_do_test(DO_1 + start_addr + i, GPIO_PIN_RESET);
|
|
}
|
|
}
|
|
}
|
|
void user_read_gpio(uint8_t *const tx_data, uint8_t *const rx_data, uint16_t length)
|
|
{
|
|
uint8_t i = 0;
|
|
uint8_t start_addr = rx_data[0]; // 读输入的起始地址
|
|
uint8_t leng = rx_data[1]; // 读输入的数量
|
|
for (i = 0; i < leng; i++)
|
|
{
|
|
tx_data[i] = gpio_di_test(DI_1 + start_addr + i);
|
|
}
|
|
}
|