|
串口协议和RS—232标准8 m5 D; o5 W% J* |0 e& ? 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485 RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 RS232电平与TTL电平的区别 a/ O' {" F' X7 k% | TTL标准:! [9 S4 W$ b* t# _ TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 RS232标准:0 l+ Q0 G- q2 r 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次+ q6 {/ j: ~; A& q- N USB/TTL转RS232 " ]) @4 P1 M, h( O. I CH340串口安装
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH3407 X5 Q5 }+ W) W1 z j3 ]" d
$ h' _1 V2 _' S' u% o. J |7 h+ Z 安装stm32cubemx并编写程序2 M% {/ a7 _' c( r! W8 r 安装,把所有的框都选上& r% A# Y1 T3 ] 安装完成后,点击help,下载依赖包7 s$ t5 Y5 _8 ~) W T: P 0 i- t! L6 |, W s, f3 _
) F) t1 \3 L5 E; V' [ 下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了/ V0 B1 C2 T! q' h" u& _ } 你们选择后,点击install now就行: f7 d& q0 `4 Y5 ?) D # [% Y, N; y1 q1 P 0 X+ F1 q: X1 M: @/ J2 o# I4 j
下载完成后回到home界面。点击图中的地方,创建新项目 6 m/ Y6 E0 ~: @" A" N
5 j* Y- i% \0 L* M6 V 点击part name输入自己的芯片,以stmc8t6. z. g5 B# s! T; ?; b 为例,之后中间出现的信息点击之后,在点击start project! \& X# A* {: C: J! r
+ ?; \8 y" G/ f& C1 @2 a7 G 点击system core,进入里面的sys,在debug那里选择serial wire
3 t8 p# u; k' ^" L
- }# b$ k: s" z* ]9 V) Q2 O 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上0 V1 W" v$ a( b: b* E( C# W # s& Z+ d0 s9 t5 \) K; S7 b
所以我们把hse那里设置为crystal/ceramic resonator就行了4 R& o) B. | `$ q * v( w _# R* Z7 k! H# M* I
- `% ^6 Y9 C* R* y W1 q 接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7: Q5 @$ m4 K- h" k PB9 PC155 B0 ~; G4 K& k' I4 k' e # A6 `) p% y7 s# h( M& M
接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight: {4 I5 b; J! d5 `: X) k7 }% q mode不用改
& q# p( J( U8 V; ?) |2 q, p 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM4 A, z3 J( \; q7 ?1 c+ L
进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了 & U, ^- K" P3 N* b4 ]
! ~4 ?2 x |9 j B7 \ 打开刚刚生成的项目将main.c的主函数部分用下列函数代替
在烧录运行,串口要断电置boot0为0,之后即可编译运行成功- a( O3 Z6 p p* {, h * m* D& B) M" \' r# S 实现led灯的周期闪烁
进入flymcu进行烧录 1 R; O6 l& \- a. ]3 |
效果图如下6 Q) M! R8 h1 M" F% _( O% d 6 _% Z. E) r" x \5 G
用stm32完成USART串口通信 打开stm32cubeMX,进入我的工程,选择芯片,开始进入
0 t9 \5 v2 d' D 接下来选择时钟配置 $ G0 c# F. T) o Z* N9 y9 p
: |% T# b5 x1 m# Q 设置USART2,点击MODE,选择Asynchronous B0 ]9 v9 ], R% M z
接着点击CLOCK configurstion选择HSE,PLLCLK. T$ e; q; ~2 G$ ]! Z3 d 8 K, i( O9 W6 y
: r' Z% q2 t9 y. o6 m% s 设置中断,在NVIC SEtting中点击Enabled! l( ?+ q% w ^! J7 t i' q% Q" {8 V ! F( {' P b3 r: U
后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目 ]# w( m! w+ |; `: v
后面生成工程打开即可3 e2 X0 v7 r( @6 C; E" ~# v 只需要把main.c里面的程序改为下列代码
- F0 g! z8 p7 ^0 F' k* ~ 后面进行烧录" B2 E8 o; M; c6 ^ 打开串行助手打印出hello windows8 x8 N" D5 ^1 V2 a) f1 R: E$ v' e
5 r( ?5 D3 H1 X* e 接下来进行波形观察 对keil进行相关操作
之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形 # _% B- T: C$ }/ ?9 i
) s6 y+ `& Y2 t! T; `& ? 大约1s一个波形. f; _7 M' N4 ~0 \+ e0 l
总结 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验4 [0 O X' i: u ————————————————5 b* u. w" F; u! E, R5 w' x 版权声明:&是梦都会空- N. M/ r5 C6 P/ c( @# X" j 如有侵权请联系删除& y' a' e' a# j4 I ' v: Z) q; d: J7 X8 s4 Z |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版