|
串口协议和RS—232标准 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485: M3 o8 T9 y N) Q RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 ' Q& V. u2 l) r/ t; m RS232电平与TTL电平的区别 TTL标准: TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 RS232标准:7 f( T+ h4 G5 A6 G! D, h( q 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次2 U3 h2 C+ c# y USB/TTL转RS232% c( Y' {5 R6 C: ? * S! b5 E- z6 u& u. n: @* I) R # g, p6 q" S5 q, d3 p CH340串口安装
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340 * J3 _. p2 k: I0 ^" W
安装stm32cubemx并编写程序3 ?. Z7 n* K* h 安装,把所有的框都选上8 O) L/ ~$ L& M9 }+ D2 P 安装完成后,点击help,下载依赖包, Q- t2 d3 A' E ) l2 K. @" G- W% |! G' w * s/ r: B4 R& k8 b# q
下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了 你们选择后,点击install now就行 4 D" T! C( i- W) l
' X! _6 l4 Q' F- Q 下载完成后回到home界面。点击图中的地方,创建新项目4 j5 Q. J u8 Q% n4 `& b
点击part name输入自己的芯片,以stmc8t6! G* p/ j/ x: m5 l" J2 g 为例,之后中间出现的信息点击之后,在点击start project 3 m! x* O! P3 _1 N1 I) R/ N" M
点击system core,进入里面的sys,在debug那里选择serial wire3 j; A: X" _! H3 J B3 h 0 q0 v* `6 _9 }0 P6 ]1 b
& s4 P& ~- i+ F7 G) l4 o, m* Y
' Z5 r$ n; S6 G 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上$ B5 d' v8 ^9 a7 U) j6 ?5 M( |5 A 4 S& e- f" j6 d
3 S- i" s+ G& `9 h) U/ A3 F 所以我们把hse那里设置为crystal/ceramic resonator就行了% y# P" o1 Z: U" @5 D 5 ~8 [& L: K6 p
9 M% @; t( Q' w# \; ^2 g 接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA74 ]% W# V! K8 E8 `/ m0 l6 f PB9 PC15 4 d& ^& {' w2 U( s, e# Q
* @ M- P# b) M0 X/ y C 接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight mode不用改( `. `2 \( v$ G8 S3 s) X $ u0 Q7 R8 W0 B9 R" z- O
点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM ' `9 y4 G0 n5 h% N
" H8 ]) J9 g4 w 进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了
打开刚刚生成的项目将main.c的主函数部分用下列函数代替" X8 M$ u2 m; m1 z" \! ]1 Y& O
" O" ?! q) Z$ H 在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 实现led灯的周期闪烁- D; i- o2 d. N , O$ Z8 O3 s( ?7 o# c3 Z7 e4 W
进入flymcu进行烧录" I1 ^% j7 r' D W : t/ U4 \0 d4 h- r1 \. u
/ m/ E) f* O: [' s1 [ 效果图如下
用stm32完成USART串口通信7 p: ?# v1 ]/ f+ Y7 S3 T 打开stm32cubeMX,进入我的工程,选择芯片,开始进入 # w2 h' N$ o4 V
接下来选择时钟配置7 o; ]; m+ J6 o 0 h6 p' }% ]' |& [+ U; I( y3 ^1 t: H
) D" I. O, J, `- U% Z* w0 { 设置USART2,点击MODE,选择Asynchronous4 m. h7 ]5 h5 w% C: D - U6 e6 u# O- D9 m8 `2 c# ] 5 J n, j- p% c6 F4 d: J
接着点击CLOCK configurstion选择HSE,PLLCLK 9 q1 @- [* I3 C+ a. D8 U
, V z7 ?. @7 M& {" l% M, b 设置中断,在NVIC SEtting中点击Enabled
后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目9 c0 _! j1 g# N) m7 u/ ~" X: } " }+ W. z4 P* o3 ?& w8 m: C% M
6 W: {! ~( e0 V
后面生成工程打开即可 只需要把main.c里面的程序改为下列代码) R) T" s) V; A+ v; V
+ a/ k' t0 m8 b; i 后面进行烧录/ s' R; `8 I; Q- j1 d 打开串行助手打印出hello windows: a( g& r8 N& c t- \4 h # |5 A* |9 z" j, J! m
& C6 x |! l2 y# j/ a1 c: ^ 接下来进行波形观察 对keil进行相关操作, {3 S$ u+ t$ Y, u& E* P / L& D+ B/ l' g% B+ A X7 p3 @
之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形
( z R a# i% p7 [3 Z 大约1s一个波形& r8 p) s/ G4 K |4 s
总结6 e: F0 R" {+ b 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验. p5 X5 B& {( P' M ———————————————— 版权声明:&是梦都会空9 t) I2 J3 W+ f! Q6 o) e8 s1 S 如有侵权请联系删除 - a1 c( P$ C; o" d: A8 R |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版