|
串口协议和RS—232标准' g' c, [+ Z4 n% y4 A 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485+ M( {2 A* N) d RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 RS232电平与TTL电平的区别 TTL标准:' y: B3 |( g% E% i TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。! \9 l8 Y% i: T1 D1 x( C5 H& M RS232标准: 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次; p9 P" P& ~0 }; c9 e9 j USB/TTL转RS2326 F- [' x( z, J; p ! G1 p: Y1 v/ ] CH340串口安装 ( R! \6 y) n3 H2 S/ O) [! m
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340
6 H% I Q1 Z. z3 K3 Z# i: A 安装stm32cubemx并编写程序8 a; E7 v! a# m% p5 b' J. Z6 A7 y 安装,把所有的框都选上 安装完成后,点击help,下载依赖包 " A! l+ q% m0 _" u5 a & ?$ O! ]7 {; c8 w% O. P3 O
下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了 你们选择后,点击install now就行
下载完成后回到home界面。点击图中的地方,创建新项目; F! r( F* Z, }$ o4 p6 n$ o 4 B/ k" r* f& ?) | 0 B4 N! G8 i7 h% V8 s
点击part name输入自己的芯片,以stmc8t6 为例,之后中间出现的信息点击之后,在点击start project 5 W3 s! T' g, j( i- F
点击system core,进入里面的sys,在debug那里选择serial wire
, U6 R5 N% B+ u
3 d4 T4 u2 p" u1 Y0 ]9 ^ 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里6 W1 \" [. R2 G 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上3 ~! |( d- Z6 G# j% |; {9 n0 s$ d 0 g/ w2 o# R& g3 m! p
所以我们把hse那里设置为crystal/ceramic resonator就行了9 g- @2 @* h: }" J* N" W$ _ 2 w% l; B4 l. c: g
5 @7 H$ x7 b+ }- d 接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7" b* q3 Q$ G. @1 l( c( h PB9 PC15- d; _, @7 j. T) z8 X
接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight# H6 _1 [5 d! D- b mode不用改( l! y' ^" Y; }% V% Q" {. _ ! a$ S& Y& \& M" ]; X8 {
9 H6 D( U. r8 w5 ]: w% R" a 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM
H, J2 F+ Z' N8 A 进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了 q2 H( Z6 f7 \$ S/ e7 e
/ o( e3 ~; L0 ?( u 打开刚刚生成的项目将main.c的主函数部分用下列函数代替; h% g/ K! Z9 Q, y
9 e+ K/ w1 H! k3 [; W 在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 实现led灯的周期闪烁2 U! h7 l. Z6 Q9 E, Z 6 t1 y: M& r; U
进入flymcu进行烧录 7 A/ P% \9 y: } a0 c/ e
效果图如下1 K' u0 @# o- A! `/ u& R) `2 s / F7 r6 P% k% c1 m# N
用stm32完成USART串口通信 打开stm32cubeMX,进入我的工程,选择芯片,开始进入) J# z1 @+ R$ S$ ` 3 s) G4 i) |8 D) K
接下来选择时钟配置 ; p9 ]+ Z. o8 i D 7 L; x- ~- g8 a+ r4 z
! J9 K0 N! G" j 设置USART2,点击MODE,选择Asynchronous & m' V1 `. x) Y2 a 0 I1 ?8 Q* F( P$ q1 D' H
接着点击CLOCK configurstion选择HSE,PLLCLK
设置中断,在NVIC SEtting中点击Enabled+ G5 t* n, y# x+ I' N% o1 a1 S$ l ) Y+ `5 G$ H0 C
后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目/ g0 ]2 ^) {- w) ]; y" _! M' j 2 U, f, W0 s- s0 l; W
% _- y8 T& O8 u- Y$ O / B( D! y/ k4 D7 b 后面生成工程打开即可 只需要把main.c里面的程序改为下列代码
后面进行烧录( {& R9 j2 _0 D- I$ [* p7 P 打开串行助手打印出hello windows) j; u2 c+ @& m1 y' _& U1 M7 D# S 9 X5 s" y. o# F; p
接下来进行波形观察 对keil进行相关操作, s8 g* \. m2 j% H5 _5 L/ q- n : O0 F/ p5 h- t' N, b6 a- j
& Q9 K) w1 z' K R9 O7 G 之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形/ r. y3 h4 v5 n, ]/ ] % X, U/ {. D( U1 S; F' E* G' V# R9 n: E
+ \5 H; K$ o& J J3 U 大约1s一个波形, B& ?! y T; L. S |" t# }, e. _
' b' P$ d$ v& z; s, U" R* _ 总结( H2 n0 i8 Q' R 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验 w" G3 {! D$ Q# `" L% H$ Y% s, ?: ] ————————————————9 p9 M$ M8 z) ]' }- P' n6 F 版权声明:&是梦都会空5 d4 }4 F( r# U$ K/ V4 o* U4 h 如有侵权请联系删除 2 k2 f* g4 ^# U2 I7 W6 _- I |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版