sipeed 的 MaixCam UART操作

发现问题

根据sipeed MaixCam官方文档
在这里插入图片描述
使用MaixVision会报错。

正确的接线

1,usb转ttl的RX和TX与sipeed MaixCam官方赠送的usb转接头反向连接,GND互相连接。
2,再用一根tpyc-c为其供电。
在这里插入图片描述

转接头的焊接和usb转ttl的连接

在这里插入图片描述
去买一根带外壳的usb转ttl型号是CH340G,这种驱动兼容性比较好。
在这里插入图片描述
这样就不用再用另外的tpyc-c为其供电。

连接WiFi路由器

MaixCam液晶屏输入WiFi名称和密码,在MaixVision左下角点击连接输入WiFi路由器给MaixCam分配的IP地址,点击连接。
在这里插入图片描述

正确的代码

from maix.v1.machine import UART
from maix import time

uart_A = UART("/dev/ttyS0", 115200)

time.sleep_ms(100) # wait uart ready
uart_A.write(b'hello PC')

while True:
  if uart_A.any():
    while uart_A.any():
      read_data = uart_A.read()
      print("recv = ", read_data) # recv =  b'hello MaixCam'   
  time.sleep_ms(10) 

pc串口工具和MaixCam互相发送接受指令

pc串口工具接收到MaixCam发送的hello PC,pc串口工具MaixCam向MaixCam发送hello MaixCam
在这里插入图片描述

MaixVision接收到pc发送的hello MaixCam

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用STM32的串行UART通信模块来实现与FM17550之间的通信。以下是一个示例程序,演示了如何使用STM32的UART模块进行读写操作。 ```c #include "stm32f4xx.h" // 初始化UART void UART_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; USART_InitTypeDef USART_InitStruct; // 使能UART和GPIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // 配置UART引脚 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOB, &GPIO_InitStruct); // 将GPIO引脚与UART功能映射 GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1); GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1); // 配置UART参数 USART_InitStruct.USART_BaudRate = 115200; USART_InitStruct.USART_WordLength = USART_WordLength_8b; USART_InitStruct.USART_StopBits = USART_StopBits_1; USART_InitStruct.USART_Parity = USART_Parity_No; USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStruct); // 使能UART USART_Cmd(USART1, ENABLE); } // 发送数据 void UART_SendData(uint8_t data) { while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); // 等待发送缓冲区为空 USART_SendData(USART1, data); } // 接收数据 uint8_t UART_ReceiveData(void) { while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); // 等待接收缓冲区非空 return USART_ReceiveData(USART1); } int main(void) { uint8_t txData[] = {0x01, 0x02, 0x03}; // 要发送的数据 uint8_t rxData[3]; // 接收的数据 UART_Init(); // 初始化UART // 发送数据 for (int i = 0; i < 3; i++) { UART_SendData(txData[i]); } // 接收数据 for (int i = 0; i < 3; i++) { rxData[i] = UART_ReceiveData(); } while (1) { // 程序主循环 } } ``` 这是一个简单的示例程序,通过UART与FM17550进行通信。您可以根据您的具体需求进行修改和扩展。请确保正确配置UART的引脚、波特率和数据格式等参数,以适配您的硬件环境和通信协议要求。 请注意,此示例程序基于STM32F4系列微控制器,使用了标准外设库(StdPeriph Library)。如果您使用其他系列的STM32微控制器或者使用了不同的库,请根据实际情况进行相应的修改和适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值