|
串口协议和RS—232标准- `: ?* J8 ~: R/ @8 ^$ W 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485 RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 RS232电平与TTL电平的区别1 A1 D& x R, w. Z3 H! M TTL标准:- }" W: N4 @+ Z7 k8 Z TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 RS232标准:% H: `/ g3 F7 y 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次6 v3 w7 M: y8 | 0 y( X. K: T" f6 w USB/TTL转RS232 / {( j$ n( a" `# P3 [; o CH340串口安装3 F7 ~) S9 | j$ |1 y0 S0 @
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340 / t( x& d, c. c. ?5 j0 ~
安装stm32cubemx并编写程序6 |) H) L, a3 x4 ~ W+ K- [" G 安装,把所有的框都选上9 S4 C4 @# B; ~0 v4 j, B 安装完成后,点击help,下载依赖包
下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了/ B1 T, B$ t0 c. Z! _9 ^! h4 b, z 你们选择后,点击install now就行
+ Z+ F( n7 t) P; w$ d 下载完成后回到home界面。点击图中的地方,创建新项目" l+ }/ t+ ~+ s3 D O) T0 E4 B & j: s8 m0 c4 ~5 {
点击part name输入自己的芯片,以stmc8t6' S: d: B! ]/ W5 x- d 为例,之后中间出现的信息点击之后,在点击start project# R$ D6 T1 D! [1 K' j 6 f( e5 [6 g f: b0 M2 l1 ~( n- B
点击system core,进入里面的sys,在debug那里选择serial wire
) C1 }% r# a5 \2 x& u$ t) y2 ?7 N
, b3 o. i- w7 C" v; A 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上 % Q. O0 o9 K8 S }& s7 W
所以我们把hse那里设置为crystal/ceramic resonator就行了 . F: {; v. `; Y, O2 T, i$ R
接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7) ~" ^4 @( s( L6 {7 F3 Z5 ^ PB9 PC15. j* t: ~8 i% X! P* t5 g8 _
6 c' t4 P' f1 v9 b; Y& S+ B 接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight mode不用改$ y. r) r; m3 m$ `' ~ ) \ r: o$ y7 G; U: R8 Y
: M8 A& h1 I4 s) B# N; ?0 n 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM 2 d0 Y* E4 \4 F9 U
进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了' c4 |$ B1 W$ n1 L5 G6 G
( ~7 |" v& }6 v* \4 e8 d 打开刚刚生成的项目将main.c的主函数部分用下列函数代替9 @3 N* Q+ e: j8 Y
在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 实现led灯的周期闪烁( b) q3 d2 ` g6 h% t( h3 B ( m& l6 D* i! y! g
进入flymcu进行烧录 1 r2 Z6 g$ H7 Y& t* ?! m# C/ W: N
效果图如下 7 X$ n' L9 @' r+ @- E0 |9 x. }
V( C* W* B$ ]1 R. R4 x 用stm32完成USART串口通信 打开stm32cubeMX,进入我的工程,选择芯片,开始进入& \1 D- X4 Y1 c! {! G ! O' M- n8 R) P) [
4 @/ V) G9 z. a7 B, _% R 接下来选择时钟配置 0 D% @# F2 y E% Y/ E# \7 f+ ^
设置USART2,点击MODE,选择Asynchronous
6 b& ~- |; ?: H: b 接着点击CLOCK configurstion选择HSE,PLLCLK 8 U8 N) }& H% [$ e
3 e |" @9 R" @ 设置中断,在NVIC SEtting中点击Enabled 9 R5 G, W z5 D' Q# [ ( ^5 n( |- ~4 I2 ~$ I
8 U9 p0 J! v: V4 ]& d 后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目' D1 }" C( J+ l
! `6 q; E: }7 h
: m ~1 s. {% [& l& H6 m0 z H8 w 后面生成工程打开即可4 j" p2 D" j# x$ \: J0 E: R 只需要把main.c里面的程序改为下列代码/ i ~* T3 T$ Q0 l; D
! U* o3 p7 E( d( T, P& q 后面进行烧录 打开串行助手打印出hello windows
8 e9 Y$ k: t' n 接下来进行波形观察1 v' t! h% d- M$ _ 对keil进行相关操作 0 W9 V, v; j2 J% s, q6 L& W
2 V5 |2 e# C5 t8 w0 d4 Z$ O5 n* | 之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形 1 ?7 u5 s2 G- N2 @1 S
9 u- A0 s$ ^: f8 q0 w' d- u8 u& Z 大约1s一个波形 3 o4 h2 ~5 B& H
总结 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验 ————————————————& j: ]4 E* {. o& x+ ?6 T 版权声明:&是梦都会空% @8 j7 V! K* T# x. z5 x$ k 如有侵权请联系删除9 }* H3 D; A7 t/ H* ?: }% K 2 \6 H+ b$ d9 s% f R |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版