|
串口协议和RS—232标准 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485 E" v( W% J+ y# F2 G RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 RS232电平与TTL电平的区别 TTL标准:2 n0 S0 x0 ]: t1 S7 {5 a% Y TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 RS232标准: 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次 USB/TTL转RS232
CH340串口安装7 S. @; L4 }4 M2 O. s 5 j( g- e* @+ @% k
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340
- Z% |/ o: `# b4 X# { 安装stm32cubemx并编写程序) Z# o# H' S) ^4 Z 傻瓜式安装,把所有的框都选上 安装完成后,点击help,下载依赖包 2 v2 W- H3 x D2 M0 E" |
下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了/ A$ f; t( b' a" d6 | 你们选择后,点击install now就行 # |5 ]: ~& q7 S; G# @6 x4 ]
下载完成后回到home界面。点击图中的地方,创建新项目) g6 R3 E- Z# q6 j7 L; r; J$ q# U3 \7 q - P9 D8 I+ g7 q5 h8 p
点击part name输入自己的芯片,以stmc8t6 为例,之后中间出现的信息点击之后,在点击start project
4 m, ]- ~2 {" e, {; a 点击system core,进入里面的sys,在debug那里选择serial wire8 w8 y9 G$ w j1 K2 t5 r4 D " S+ \2 R2 }3 @1 S. J _
- I6 u4 C. t# u! z& _6 v
- O$ D1 P9 B. k7 ]" ^ 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里8 Y& j0 v- c# D4 M, o 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上. ~, [% i7 p- O. G & {- R9 d& \9 h9 r7 s
所以我们把hse那里设置为crystal/ceramic resonator就行了
接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7' Z: k: d% t1 i' c PB9 PC15
' d5 w1 Z$ q D. e8 I 接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight mode不用改4 B' Z: h% `5 n5 C4 P q+ F$ K% ]
& w$ b' x2 m! x8 Q5 u" n 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM( d" z3 m; o$ ]/ @ , M5 K& X! I. a2 x5 o
! ~8 h' n1 i a* e) k 进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了 ( H/ J. F! u$ d! u$ @! N
8 D' }! M" f! K( q/ m, @1 o0 q2 ~ 打开刚刚生成的项目将main.c的主函数部分用下列函数代替/ C- U, X/ ?) l2 f8 f0 p3 y
' A3 K2 Q7 ~# P 在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 |' ^3 u! p+ I5 g e+ Q( b" f* f2 S4 k" |: K3 E* ~5 s 实现led灯的周期闪烁; u( V# a F, h* k! f
2 L3 r+ }1 D3 t/ R1 [' `9 n 进入flymcu进行烧录0 d5 f B1 i ?! {3 H % H% I. J2 O. P5 g K" q9 ?, j
0 J9 ~: F( k' p+ G 效果图如下 6 S% c& K |. H
5 j! G2 b5 ^! t4 A% w4 _' }( z 用stm32完成USART串口通信, g1 J, o9 I* ?; p) K9 z% @ 打开stm32cubeMX,进入我的工程,选择芯片,开始进入% R% n7 X2 X( t6 ~+ |! ~# F
接下来选择时钟配置$ S5 j. ~0 V+ j6 u' f
" [( U1 X) N/ |4 E: L( I3 u2 T 设置USART2,点击MODE,选择Asynchronous$ P6 ^+ V+ x9 X) M+ q B5 |
4 P! L: \( ]4 u* m: b 接着点击CLOCK configurstion选择HSE,PLLCLK: \0 E I2 R3 |0 p- ^8 N5 ~ R% D4 T
设置中断,在NVIC SEtting中点击Enabled
后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目$ I+ R$ e6 x$ t$ z$ f& E. B' d % _, |8 _5 D W
后面生成工程打开即可 只需要把main.c里面的程序改为下列代码
后面进行烧录 打开串行助手打印出hello windows, g# Q0 T& W& U' D3 ?0 T/ S# M
. F3 A4 g+ G, R+ T 接下来进行波形观察" z2 ?# P: u& ^7 b# B 对keil进行相关操作
之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形# C* a4 t) ~3 n1 B- D
* r6 P/ ^, Q& |$ e& J, U2 Z 大约1s一个波形. a. x( h1 l9 ]
9 t/ n5 x5 l8 `! f9 @: h- _% V 总结: a% {7 ^( ^9 F* I* _) V1 k 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验% ?5 u. _% E! B# p+ N o9 J6 c ———————————————— 版权声明:&是梦都会空" y' F: ^7 d( B" [4 i8 x1 N 如有侵权请联系删除8 k% [! A" y+ b5 w/ f! }4 P & z3 d9 `4 ?; B$ {( A9 |& a4 P & y7 y7 s1 X! J' m9 L |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版