网站域名类型,广西省住房和城乡建设厅官方网站,排名优化是什么意思,wordpress批量提交表单目录
前言#xff1a;
一、K210 串口部分教程
二、STM32部分 前言#xff1a; 很多打比赛的同学#xff0c;通常只是用K210 或者openMV来进行视觉部分的信息采集#xff0c;传输数据给STM32#xff08;或者其他主控那边#xff09;进行对分析#xff0c;对小车或者舵…目录
前言
一、K210 串口部分教程
二、STM32部分 前言 很多打比赛的同学通常只是用K210 或者openMV来进行视觉部分的信息采集传输数据给STM32或者其他主控那边进行对分析对小车或者舵机等其他模块进行相对应控制比较少的同学是K210 当成一块开发板使用因为它也有很多外设那么此篇文章就讲述如何进行K210 与STM32 进行通信openMV也是一样
一、K210 串口部分教程 经过资料找到Maix bitK210有3个串口而且引脚不是固定的可以根据自己对板子资源的利用对引脚进行合理的分配对引脚进行重映射配置我们想要的引脚为TX、RX。
下面是引脚配置以及串口初始化
from machine import UART
from fpioa_manager import fmfm.register(6, fm.fpioa.UART1_TX, forceTrue)
fm.register(7, fm.fpioa.UART1_RX, forceTrue)
uart UART(UART.UART1, 115200, 8, 0, 0, timeout1000, read_buf_len4096)
代码解析
from machine import UART 从 machine 模块导入 UART 类。这个类提供了串行通信的功能。 from fpioa_manager import fm
从 fpioa_manager 模块导入 fm 对象。fpioa_manager 是用于管理 FPIOAField Programmable Input/Output Array的模块它允许你将特定的功能映射到 GPIO通用输入输出引脚上。
fm.register(6, fm.fpioa.UART1_TX, forceTrue)
这行代码将 GPIO 引脚编号 6 映射为 UART1 的发送TX引脚。forceTrue 参数表示强制覆盖之前的映射设置。
fm.register(7, fm.fpioa.UART1_RX, forceTrue)
这行代码将 GPIO 引脚编号 7 映射为 UART1 的接收RX引脚。同样forceTrue 参数表示强制覆盖之前的映射设置。
uart UART(UART.UART1, 115200, 8, 0, 0, timeout1000, read_buf_len4096)
创建一个 UART 实例用于初始化 UART 通信。 UART.UART1指定使用 UART1。 115200设置波特率为 115200这是数据传输的速率单位是比特每秒。 8设置数据位为 8 位。 0设置停止位为 1 位因为传入的是 0这里可能是一个错误通常停止位应该是 1。 0设置无奇偶校验位。 timeout1000设置超时时间为 1000 毫秒这意味着如果在这段时间内没有接收到数据UART 将停止等待。 read_buf_len4096设置接收缓冲区的长度为 4096 字节这是 UART 可以存储的接收数据的最大量。 K210 串口发送数据
uart.write(write_str) uart:串口初始化赋值的对象 write_str想要发送的数据
数据类型可以是
1.字符串strPython 中的字符串可以被编码成字节序列然后通过 UART 发送。通常使用 UTF-8 编码但也可以指定其他编码方式。 2.字节序列bytes 或 bytearray这些是已经编码的字节序列可以直接发送。 3.数字int 或 float数字需要先被转换为字节序列。通常使用 struct 模块来打包数字因为不同的系统可能有不同的字节序大端或小端。 4.结构化数据可以使用 struct 模块将复杂的数据结构打包成字节序列然后再发送。 例如发送一个utf-8类型的字符串
uart.write(write_str.encode(utf-8)) # 使用 UTF-8 编码字符串
串口接收数据
data uart.read(2) 这句话就是串口接收2个数据通常可以拿来判断并执行指定功能如下
data uart.read(2)if data!None:if data bA:save 0 #不存到SD卡中elif data bB:save 1 #存到SD卡中 read_str read_data.decode(utf-8) 这句话就是串口接收utf-8类型的字符串 那么在知道怎么发送数据的函数现在就是要使用K210 发送数据给STM32 那边
要使用uart.write() 函数吗NO有更好的方法就是将数据打包发送不然用uart.write()一个一个发太麻烦了
那么怎么发送数据包呢
首先导入ustruct库
import ustruct 打包函数
ustruct.pack
ustruct.pack 函数用于将 Python 数据类型打包成字节流。这在需要通过串行通信发送二进制数据时非常有用。ustruct 模块提供了与 C 语言中的 struct 类似的功能允许你指定数据的格式并将其打包成二进制形式。如下
data1 ustruct.pack(bBBBb, 0xFF,0XAA,0xBB,0XCC,0xFE)
uart.write(data1) 功能打包5个charB类型类型可以自己决定的数据赋值给data1 ,并发送出去,通常可以把0XFF、0XFE作为包头包尾在STM32进行接收开始和完成判断中间3个数据0XAA,BB,CC----随便写的就是我们要发送stm32的数据至于是什么数据就是自己更改个数也可以是改BBBBBB改这里几个数据就再加几个B
B、b代表数据类型还有下面其他类型
b有符号字节char B无符号字节unsigned char h有符号短整型short H无符号短整型unsigned short i有符号整型int I无符号整型unsigned int l有符号长整型long L无符号长整型unsigned long q有符号长整型long long Q无符号长整型unsigned long long f单精度浮点数float d双精度浮点数double
最后K210 代码串口发送数据部分就是怎样打包一起发送给STM32那边
二、STM32部分 代码接收部分展示
uint8_t Serial_RxPacket[3]; //数据包长度3只存发送或接受的载荷数据不存包头包尾
unsigned char K210_data[3];
void USART2_IRQHandler(void)
{u8 Res;static uint8_t RxState 0;//静态变量只能在本函数使用static uint8_t pRxPacket 0;if (USART_GetITStatus(USART2, USART_IT_RXNE) SET){Res USART_ReceiveData(USART2);//(USART1-DR); //读取接收到的数据if (RxState 0)//矩形包头{if (Res 0xFF){RxState 1;pRxPacket 0;} }else if (RxState 1)//矩形数据{Serial_RxPacket[pRxPacket] Res;pRxPacket ;if (pRxPacket 3){RxState 2;}}else if (RxState 2)//矩形数据 包尾{if (Res 0xFE)//说明收到包头{//LED0 !LED0;K210_data[0] Serial_RxPacket[0];K210_data[1] Serial_RxPacket[1]; K210_data[2] Serial_RxPacket[2]; }else//接收错误全部清0{Serial_RxPacket[0]0;Serial_RxPacket[1]0; Serial_RxPacket[2]0; RxState 0; }}USART_ClearITPendingBit(USART2, USART_IT_RXNE);//清除标志位 }
} 解释使用状态机方法对包头0XFF和包尾0XFE进行判断说明K210 那边发来数据了使用STM32定义的变量char K210_data[3]将数据存储下来用来STM32这边数据分析然后实现指定功能操作。 总结以上就是K210 与STM32 串口通信的教程不理解的欢迎评论区讨论 文章转载自: http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.tllws.cn.gov.cn.tllws.cn http://www.morning.jrlxz.cn.gov.cn.jrlxz.cn http://www.morning.pfggj.cn.gov.cn.pfggj.cn http://www.morning.bpp999.com.gov.cn.bpp999.com http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn http://www.morning.xrwtk.cn.gov.cn.xrwtk.cn http://www.morning.lhxrn.cn.gov.cn.lhxrn.cn http://www.morning.fbxdp.cn.gov.cn.fbxdp.cn http://www.morning.bpds.cn.gov.cn.bpds.cn http://www.morning.mlnby.cn.gov.cn.mlnby.cn http://www.morning.qttg.cn.gov.cn.qttg.cn http://www.morning.blxlf.cn.gov.cn.blxlf.cn http://www.morning.klzdy.cn.gov.cn.klzdy.cn http://www.morning.pjfmq.cn.gov.cn.pjfmq.cn http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn http://www.morning.skfkx.cn.gov.cn.skfkx.cn http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.grtwn.cn.gov.cn.grtwn.cn http://www.morning.zfwjh.cn.gov.cn.zfwjh.cn http://www.morning.llxns.cn.gov.cn.llxns.cn http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn http://www.morning.rfldz.cn.gov.cn.rfldz.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.pqjpw.cn.gov.cn.pqjpw.cn http://www.morning.yxdrf.cn.gov.cn.yxdrf.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.nqypf.cn.gov.cn.nqypf.cn http://www.morning.zcmpk.cn.gov.cn.zcmpk.cn http://www.morning.frmmp.cn.gov.cn.frmmp.cn http://www.morning.chehb.com.gov.cn.chehb.com http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn http://www.morning.wdlyt.cn.gov.cn.wdlyt.cn http://www.morning.xxgfl.cn.gov.cn.xxgfl.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.ljcf.cn.gov.cn.ljcf.cn http://www.morning.pndw.cn.gov.cn.pndw.cn http://www.morning.lzbut.cn.gov.cn.lzbut.cn http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn http://www.morning.qqfcf.cn.gov.cn.qqfcf.cn http://www.morning.kwqt.cn.gov.cn.kwqt.cn http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.xfxqj.cn.gov.cn.xfxqj.cn http://www.morning.qymqh.cn.gov.cn.qymqh.cn http://www.morning.rxkl.cn.gov.cn.rxkl.cn http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn http://www.morning.rbffj.cn.gov.cn.rbffj.cn http://www.morning.qxdrw.cn.gov.cn.qxdrw.cn http://www.morning.dpmkn.cn.gov.cn.dpmkn.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn http://www.morning.qsmdd.cn.gov.cn.qsmdd.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.jqrp.cn.gov.cn.jqrp.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn http://www.morning.rymd.cn.gov.cn.rymd.cn http://www.morning.krdxz.cn.gov.cn.krdxz.cn http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn http://www.morning.jydky.cn.gov.cn.jydky.cn http://www.morning.grlth.cn.gov.cn.grlth.cn http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.rjnx.cn.gov.cn.rjnx.cn http://www.morning.jxrpn.cn.gov.cn.jxrpn.cn http://www.morning.rnwt.cn.gov.cn.rnwt.cn http://www.morning.ruyuaixuexi.com.gov.cn.ruyuaixuexi.com http://www.morning.qlbmc.cn.gov.cn.qlbmc.cn http://www.morning.mltsc.cn.gov.cn.mltsc.cn http://www.morning.dbdmr.cn.gov.cn.dbdmr.cn http://www.morning.kxymr.cn.gov.cn.kxymr.cn http://www.morning.cwznh.cn.gov.cn.cwznh.cn http://www.morning.ntqjh.cn.gov.cn.ntqjh.cn http://www.morning.rfwkn.cn.gov.cn.rfwkn.cn http://www.morning.rrdch.cn.gov.cn.rrdch.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn