openmv 单独通过usb转串口可以将数据发送到串口助手显示将RX TX连接到stm32的TXRX上后无法读取到数据
-
openmv代码
import time from pyb import UART uart = UART(1, 9600) num=1 while(True): uart.write(str(num)) time.sleep(1000)
stm32代码
int main(void) { u8 t; u8 len; u16 times=0; delay_init(); //ÑÓʱº¯Êý³õʼ»¯ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2 uart_init(9600); //´®¿Ú³õʼ»¯Îª9600 LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú while(1) { if(USART_RX_STA&0x8000) { len=USART_RX_STA&0x3fff;//µÃµ½´Ë´Î½ÓÊÕµ½µÄÊý¾Ý³¤¶È printf("\r\nÄú·¢Ë͵ÄÏûϢΪ:\r\n"); for(t=0;t<len;t++) { USART1->DR=USART_RX_BUF[t]; while((USART1->SR&0X40)==0);//µÈ´ý·¢ËͽáÊø } printf("\r\n\r\n");//²åÈë»»ÐÐ USART_RX_STA=0; }else { times++; if(times%5000==0) { printf("\r\nALIENTEK MiniSTM32¿ª·¢°å ´®¿ÚʵÑé\r\n"); printf("ÕýµãÔ×Ó@ALIENTEK\r\n\r\n\r\n"); } if(times%200==0)printf("ÇëÊäÈëÊý¾Ý,ÒԻسµ¼ü½áÊø\r\n"); if(times%30==0)LED0=!LED0;//ÉÁ˸LED,ÌáʾϵͳÕýÔÚÔËÐÐ. delay_ms(10); } } }
-
问题已解决,现在将经验分享下,最主要的问题是stm32的代码,每次接受到数据后要在接受0x0d与0x0a,才为一次正常的数据接收,于是在要发送的数据后面加上,就可以得到了
![0_1571212459040_A6(MH_4DS8)HH2]FS{`F0TH.png](https://fcdn.singtown.com/21e6e99f-8270-42cb-a9ef-538b2cbe78ec.png)while(True): data=bytes([0x0d,0x0a])# 数据接收结束标志 uart.write(str(num)) uart.write(data) time.sleep(1000)
接线,我用的是usb转串口,将openmv TX RX引脚分别接到STm32的RX,TX引脚上,共地,然后在将stm32的TX,RX引脚接到usb转串口上即可!
-
请问一下那个转串口是怎么连接的 不太懂这个东西 而且把转串口连接到电脑后是不是就能通过串口查看收到的数据了呢