|
串口协议和RS—232标准 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485/ I0 s# a2 }% `" M RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。& f1 r2 G2 ~, l- c8 y* C6 i R 1 S7 g" W* r. P1 B( p* P RS232电平与TTL电平的区别' W; n$ }& s1 _ Q TTL标准: TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 RS232标准:( j/ I" n! f( _; T& E* o 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次) C5 P& G# T$ F p9 i 6 g1 T+ Y0 U3 \, r USB/TTL转RS232
1 D) v: b6 V+ m" P3 ^5 o CH340串口安装$ @2 u4 O" Z) z' j! M5 ^' ~" q/ A
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340 ( }0 E, V9 f& n. d. _: }
6 S1 ]' m& j% d- m- g6 c* z& r' i 安装stm32cubemx并编写程序 傻瓜式安装,把所有的框都选上 安装完成后,点击help,下载依赖包 . S( J9 O: A: y9 _8 m. w+ a
$ Q. q$ | Q8 L0 r8 s3 T 下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了 你们选择后,点击install now就行 : w% Z R' `8 |4 m1 C7 ?& s
5 E7 M+ A" ^3 _: l 下载完成后回到home界面。点击图中的地方,创建新项目 5 O. |8 F) }. K6 ?1 U! ^: i* y
点击part name输入自己的芯片,以stmc8t6% v& n( S2 i& l0 X 为例,之后中间出现的信息点击之后,在点击start project- F5 o O! q: w+ }3 ~
点击system core,进入里面的sys,在debug那里选择serial wire# ?4 v) v3 n7 G$ y6 ? ( n7 f1 v* J Q- A3 ~/ _
4 W% t! j" A1 k0 u* _% p! l! w
2 }6 x: B" l4 m0 ~9 J/ w0 p, K 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里1 T7 p6 I3 Y8 \& D! ]* |( y 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上
所以我们把hse那里设置为crystal/ceramic resonator就行了6 E$ c2 a+ I8 `) @% z P ) e: J6 Z. e( f3 m
5 G$ b! j+ I8 X7 ? 接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7( S7 P+ Y3 b& l$ l" F9 B PB9 PC15% H4 u6 v' b8 s # E+ @0 s p$ v7 h
接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight mode不用改
, N K+ X+ W4 G! h' r; q$ d 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM) u- ^) p: u: q 5 E4 ~9 Y, r. Y$ P7 D3 v0 V" B
进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了5 Y/ X) D: ?$ }
/ v2 g1 y* ^% s 打开刚刚生成的项目将main.c的主函数部分用下列函数代替
$ o7 ]& p3 b; t9 M4 F 在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 * F; N" l/ X# Q* a! y- R. e- \) Y- x 实现led灯的周期闪烁$ c4 {8 g* T- a; @* m
2 C' K' C: }$ ~7 y 进入flymcu进行烧录$ E" J% [ w; x& U
( c& ]9 b/ g$ o 效果图如下1 k& a6 i6 F; w U" G6 t ' Z& E \/ e$ c' c _1 H$ R
用stm32完成USART串口通信! f& M: w3 v) v: I 打开stm32cubeMX,进入我的工程,选择芯片,开始进入 ) v1 o0 P v/ ^0 T1 ?
2 i7 i- e1 M8 M5 x 接下来选择时钟配置1 c. M; d1 Y$ h- I, T0 D4 \/ w
. d# n$ T7 z+ R 设置USART2,点击MODE,选择Asynchronous
( K. F5 K, ^* L# t 接着点击CLOCK configurstion选择HSE,PLLCLK! ~0 X' R$ j/ [0 ]7 f , H& `3 p w- ?! j1 m1 ]
设置中断,在NVIC SEtting中点击Enabled
6 i0 I, Q0 j: {0 E j- w 后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目4 ? u% I9 q% h5 S0 K" Z
后面生成工程打开即可 只需要把main.c里面的程序改为下列代码
后面进行烧录 打开串行助手打印出hello windows/ ]8 E0 v, J" t9 k6 _ 5 _; B1 e6 J c, z0 W ]( v- y, v2 w
4 ^1 O7 S3 t0 ^7 B2 y . X7 G. e" }6 u- _1 E 接下来进行波形观察( K# N7 \0 W- _% B* Y 对keil进行相关操作/ h, b& n5 Y# X/ z9 o
之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形 ( p8 P/ [( r4 ]" \3 b8 [* |- j
% |; Q$ \) h5 ]- J$ R j0 V5 w3 x 大约1s一个波形
总结. f' J2 y+ P% T. e 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验& v/ ^ f, \1 D ————————————————- ^, Q* u& e7 x% a T0 O: i( L 版权声明:&是梦都会空 如有侵权请联系删除; S$ ?$ h0 G: }4 ~3 J $ V+ C' _( g- F' R+ e0 x |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版