K210(K210)

K210模块是一个优化过图像处理能力的边缘计算设备,通过UART2和小车通讯

全局变量

全局变量类型注释
buf_msgchar[20]K210 接收消息缓冲区
g_new_flaguint8_t接收标志,用于指示是否正在接收新消息
g_indexuint8_t消息索引,用于存储接收的字符

宏定义

宏定义注释
BUFFER_SIZE40K210 接收缓冲区大小

方法

USART2_init(u32 baudrate)

初始化 USART2(用于 K210 通信)

参数类型注释
baudrateu32波特率
返回值类型
void

K210_Deal_Recv(uint8_t recv_msg)

解析 K210 模块发来的消息

参数类型注释
recv_msguint8_t接收到的字符
返回值类型
返回接收的完整字符串char*
默认情况下以'$'字符作为数据包头, 以'#'作为数据包尾

K210_Send_Msg(const char *data_str)

向 K210 模块发送字符串消息

参数类型注释
data_strconst char*待发送的字符串
返回值类型
void

USART2_Send_U8(uint8_t ch)

发送一个字符到 K210 模块

参数类型注释
chuint8_t要发送的字符
返回值类型
void

USART2_Send_ArrayU8(uint8_t *BufferPtr, uint16_t Length)

发送一个字节数组到 K210 模块

参数类型注释
BufferPtruint8_t*待发送的数据指针
Lengthuint16_t数据长度
返回值类型
void

USART2_IRQHandler(void)

USART2 中断服务函数,处理接收到的数据

返回值类型
void

使用示例

K210 代码, 请参照教程将下列代码运行在K210视觉模块上


from machine import UART
from fpioa_manager import fm

fm.register(8, fm.fpioa.UART1_TX, force=True) fm.register(6, fm.fpioa.UART1_RX, force=True)

uart_A = UART(UART.UART1, 115200, 8, 0, 1, timeout=1000, read_buf_len=4096)

uart_A.write("$Hello Yahboom#")

STM32小车的代码


#include "bsp_usart2.h"
#include "bsp_k210.h"

int main() {
    bsp_init();
    while(1) {}
    return 0;
}

// 串口中断服务函数
// !注意!  
// USART2_IRQHandler()函数默认写在 bsp_usart2.c 文件中
// 若想要在main.c里处理这个中断,需要删除bsp_usart2.c中的USART2_IRQHandler()函数

void USART2_IRQHandler(void) {
    uint8_t Rx2_Temp;
    if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) {
        USART_ClearITPendingBit(USART2, USART_IT_RXNE);
        Rx2_Temp = USART_ReceiveData(USART2);
        char* res;
        res = K210_Deal_Recv(Rx2_Temp);
        if(res != NULL) {
            printf("recv: %s\n" , res);
        }
    }
}