|
串口协议和RS—232标准) F0 N' G- k; _1 L% L5 G& [0 q( D 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-4858 G* r2 M V7 Z; ~2 V RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 RS232电平与TTL电平的区别' o3 |+ E1 k' B; @; z% m; _* G TTL标准:2 ~" J3 X D, O1 h N7 [ TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。; [4 l7 h I0 ^( m, ?2 Z0 {/ J( ` RS232标准:, V1 m! U3 g' [) `3 l 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次 USB/TTL转RS232
, }6 F0 x3 X* `' V5 J+ \6 y+ J CH340串口安装
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340
& N8 i# Z7 m) P+ [9 ~ + T b; C# X6 g) K& H3 A, @9 U 安装stm32cubemx并编写程序% ^7 w& {; y7 B% a5 U/ V0 R, E 傻瓜式安装,把所有的框都选上 安装完成后,点击help,下载依赖包
. K. M/ g7 U- K0 l( I 下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了) o5 }" N/ P) b( c: X: r) V 你们选择后,点击install now就行 ' K. Q. q2 q5 t5 t4 ?, _
0 C: d# q0 o1 V+ S; A3 Y+ }- Z: P 下载完成后回到home界面。点击图中的地方,创建新项目 b1 c" K B& b6 X$ s
点击part name输入自己的芯片,以stmc8t6 为例,之后中间出现的信息点击之后,在点击start project8 A6 o) ?: U0 K* v8 W2 l + T* r3 }* Q- u0 f9 z) \
点击system core,进入里面的sys,在debug那里选择serial wire& b$ ^# u' b9 u' \6 h* R' c! Z2 a & L; @" C4 Q1 j4 ^& X3 _, [& p
接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里3 \7 H* _+ `( p- P. `1 l2 f1 \, B4 Q5 @ 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上$ [2 r8 C$ t5 f5 b/ C
所以我们把hse那里设置为crystal/ceramic resonator就行了 ; X3 g& H( t8 k4 K% a! G
接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7 PB9 PC15
接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight mode不用改 ! @5 u7 V. }3 ?& w' [5 C6 a9 S, L' g" q
点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM4 G# S8 x% n" A; ?' p, J9 \- I6 P
/ U8 p' t5 g. P2 o. j8 L m 进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了# B) h, K" T( W" E . y% E% H1 B3 x2 C
打开刚刚生成的项目将main.c的主函数部分用下列函数代替9 s5 P. R2 d& D" M- m0 L$ J
在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 实现led灯的周期闪烁: U" c8 V# E( [5 l, R
$ \+ U1 l6 D# G* S 进入flymcu进行烧录 ' u4 U# h+ ]1 [; D
效果图如下 5 g- W, Y8 n9 u$ [/ {5 q
$ {& H" \6 N4 D1 Z" z ) u' P! A( F k* P5 R% Q/ X3 d* u 用stm32完成USART串口通信 打开stm32cubeMX,进入我的工程,选择芯片,开始进入 ; ^4 P3 H& s* c6 x/ S4 F/ [5 m1 T2 {
接下来选择时钟配置
设置USART2,点击MODE,选择Asynchronous5 @/ I. z' o9 w& x
接着点击CLOCK configurstion选择HSE,PLLCLK
8 s1 U; P$ y+ P7 f6 S# Z 设置中断,在NVIC SEtting中点击Enabled
后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目
# Z" C6 T' {. J+ F; Y' B
后面生成工程打开即可/ o( m. `2 t/ A( B4 Z) d: Q 只需要把main.c里面的程序改为下列代码
后面进行烧录 打开串行助手打印出hello windows2 [' S* y, {1 S& x- [- P 2 }5 r+ O+ W. Z4 i- g+ c0 [
9 ^+ N+ Q0 E e! g% n+ N/ v # {% J+ W8 y! [) |# Z- ` 接下来进行波形观察 对keil进行相关操作' v' `$ z/ z0 f% v8 J/ [5 N ' X( ?) L9 A' s' B
之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形8 t" ^$ j0 G3 X. s+ i P* g 5 W9 r/ }$ N2 T! b& D' d
大约1s一个波形% w7 t. D: K$ ]3 A0 B* O 4 v6 v$ R& [3 t) m1 s9 r" Y
% K! A) {/ q3 t, T' o6 Z 总结: I4 p5 c/ k& Q ^, h 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验4 J+ o u% T; |: B+ m% C9 C ———————————————— 版权声明:&是梦都会空 如有侵权请联系删除 6 b9 t% U3 e6 u. B5 d |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版