关于STM32串口通信

关于STM32串口通信,第1张

如果你的是STM32的开发板,就算没DB9串口,应该也会留有插针连接芯片的相应串口引脚,用杜邦线接出来即可;
笔记本上没有串口只能用USB转串口线了,电脑城都有卖的,与板子相连还要加片MAX232芯片进行电平转换。
自己做可以考虑用USB转串口芯片PL2303芯片,只要3块一片,转出来的直接就是TTL电平,可直接与实验板上芯片引脚相连,不用MAX232。

从这个问问题的水平上看,要先给LZ介绍点背景:
1、芯片制造商一般会预留几种程序烧录的方式,其中比较常见的是串口。
2、不同芯片厂商的的烧录方式是不同的,比如STM32需要设置BOOT0和BOOT1引脚设置当前烧录的程序位置。
3、虽然不同的芯片厂商都可能使用串口下载程序,但是他们的烧录方式和命令不一定相同,主要是看芯片制造商的文档。
OK,进入楼主的问题:
1、程序烧录只不过是数据流的交互,不需要使用特殊的导线,只要能导电就行。当然,如果是远距离传输,需要根据串口的阻抗进行阻抗匹配。
2、计算机输出的串口为RS232电平,单片机一般为TTL电平,需要使用电平转换器,或者使用USB转串口的硬件工具。
3、不同封装的STM32芯片引脚定义不同,接线时使用USART1引脚,具体的引脚定义在STM32的数据手册里面有。
4、HEX文件只不过是记录了程序的机器码信息的文件,是二进制文件的文本格式,烧录工具在载入这种文件时,需要进行解析,才知道那一部分的二进制代码需要写入哪一个地址(注意,代码烧录不能随便选择地址,需要由HEX文件上的地址决定。如果需要将代码转移到别的地址空间,需要对程序编译参数进行设置,然后重新编译)

我们常用的连接方式:232转TTL电平,转换后的TX接STM32的RX,转换后的RX接STM32的TX。将BOOT0和BOOT1设置好(具体设置忘记了,请参照STM32的参考手册),接下来的通信就是看烧录工具了。
具体烧录工具的协议没有研究过,一般是读芯片ID,令芯片进入Bootloader,然后将地址和数据传输给芯片的BIOS,芯片烧录。

一、 STM32的输入输出管脚有下面8种(4输入 2输出 2复用输出)可能的配置: ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出

我们设置RF参数,只需要在上面的灰色格子里输入参数就可以,再根据产生的数据进行配置,个人建议使用英文版的吧
上图从左往右依次是让你选择调试类型,是否禁用曼切斯特模式,晶体误差(TX和RX两个),频率设置,发射速率设置,AFC是否开启,(中间的可以不理),频差
选择好以上的配置后,相应的在下面会有几个表,分别往所对应的寄存器写入相应的值就可以
频率设置
发射速率设置
频率偏差
其他设置(我也不知道是干嘛的,具体看数据手册吧)
把以上配置好后,SI4432的初始化基本也就配置好了。
接下来,应该对相应的spi口配置,写SI4432读寄存器函数和写寄存器函数,注意,在写的时候最高位应为1代表写!
配置大致就是这样了~~
接下来列出一些主要的寄存器吧~
地址03h中断状态 1
地址04h 中断/中断2
地址 05h中断使能 1
地址 06h 中断使能 2
地址 07h 运行模式和功能控制1
地址 08h 工作模式和功能控制
地址 09h 30 MHz晶体振荡器负载电容
地址 0Bh GPIO配置 0
地址 0Ch GPIO配置 1
地址 0Dh GPIO配置2
地址 30h 数据存取控制
地址4Bh 接收到的数据包长度
地址 69h AGC 过载
地址71h 调制模式控制 2
地址 7Fh FIFO存取

1串口只能一对一,即PLC要么和PC连接,要么和STM32单片机连接,除非在PLC上再加一个RS232接口模块。 2单片机STM32的USART口要经过一个232芯片,将TTL电平转换为232电平,才能和RS232接口设备(PLC或者PC)连接。 3DB9串口(9针)也好,DB15(15针)也好,其实我们只用其中的3针,即接收、发送、地线。RS232通讯用这3根线就行了。根据你所用的是公头还是母头,找到收、发、地三个管脚,(上网搜管脚定义)可以自己焊接一个转接线,与其买现成的还不如动手做一个快呢。 4所需材料:串口头(公母根据你需要选择)、3芯线、烙铁。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13362268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存