|
串口协议和RS—232标准& d& s M; K" Z A g- v8 y 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485 RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。; }0 F. g# L! t; L7 \+ S RS232电平与TTL电平的区别 TTL标准: TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。( I% Z' D1 z$ D$ i0 v8 L RS232标准:( k, v! a8 S+ M8 X& r$ Q 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次0 k& ^7 V6 N) @* j USB/TTL转RS232$ C4 Q' T7 Y$ `# s
CH340串口安装' g y. _: W1 C2 a0 J ) U7 N( z( f9 v4 }' f: ?# G% L: k
U) {: `3 W1 h( X& m" E4 M: v 双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340
4 G+ t8 K( I8 w7 X+ T8 Z; g 7 B' e$ W/ t' i0 p 安装stm32cubemx并编写程序+ [4 q7 S- f& M" ^3 E 傻瓜式安装,把所有的框都选上 安装完成后,点击help,下载依赖包 $ c* I4 f3 Q3 k+ T/ ]0 i' K
下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了 你们选择后,点击install now就行- w; F" T* x& {# ~4 m5 Y . ^: i) t. o. y$ R1 S
下载完成后回到home界面。点击图中的地方,创建新项目 1 O. @, p- i0 J
点击part name输入自己的芯片,以stmc8t6 为例,之后中间出现的信息点击之后,在点击start project1 M K! @6 ^& H2 ]0 D
点击system core,进入里面的sys,在debug那里选择serial wire / ]: v5 o0 `) U M, v
" H0 j" s: Q0 T0 J2 n, ^
接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里" y4 ]7 ^6 C* x7 |7 W 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上
5 A8 Z1 ^ U6 ]! p8 R3 c6 [ 所以我们把hse那里设置为crystal/ceramic resonator就行了
接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7 PB9 PC15" E) b2 v7 i" t1 F: F& [9 Y
接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight mode不用改 ) `% y% P' a8 Q2 l& e
2 @3 t5 Y; R6 C( }0 O' k6 a 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM6 O9 P& V" \* Y1 z# N & s7 v- s9 K' p" H0 l
进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了% [& Z* k5 t: A7 N; {
打开刚刚生成的项目将main.c的主函数部分用下列函数代替
在烧录运行,串口要断电置boot0为0,之后即可编译运行成功 实现led灯的周期闪烁- J; M8 V/ \7 V* _, j1 H8 q$ K
进入flymcu进行烧录
' C" n2 y/ w' n 效果图如下$ P3 O' \4 u9 ?2 U ( c! h. }& A' Q7 T* ~
用stm32完成USART串口通信; q1 O1 `2 A5 z0 ?& j( t' W 打开stm32cubeMX,进入我的工程,选择芯片,开始进入
接下来选择时钟配置 0 T* O1 ?, ?8 n
设置USART2,点击MODE,选择Asynchronous4 D3 Z+ O% Y7 L$ S2 p V
接着点击CLOCK configurstion选择HSE,PLLCLK J Y) x1 l; t , v6 t' D) |8 ^0 l( m
8 b5 [# T4 |7 A6 ~/ \ 设置中断,在NVIC SEtting中点击Enabled
后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目/ b w: u5 M# s8 u8 N5 T( M' ` D
% {4 R) X7 ?, h9 \. u1 B
8 E- |+ b$ M' K ~" A! } 后面生成工程打开即可 只需要把main.c里面的程序改为下列代码6 n" d- u$ Y; D. D# Z# ^
0 m) w# ~7 P) O% I9 V 后面进行烧录1 R) l+ _4 j6 T$ v. B% W7 A* O 打开串行助手打印出hello windows5 Y# u, H# `/ H& g6 d) D. y ( V* {4 O6 N( ]- U
2 n/ r3 p2 p( O- g 接下来进行波形观察 对keil进行相关操作+ F( }& e& p2 R: L # J7 o9 @$ F, y% K0 ?) L
之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形# V( f; C! p2 f2 @+ w+ \1 R , U. l+ |9 e L3 d
, r$ x- m* m. i' _$ o 大约1s一个波形/ b* R/ ?' R# ~8 n( f+ |# ] ! k* t6 R4 O" ^* A& @8 C: a
2 m4 n5 {- k9 M! o' K 总结 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验 ————————————————% U ^* r0 E; P# _ i+ K 版权声明:&是梦都会空. m y/ N5 G0 v9 X, w# i% \ 如有侵权请联系删除4 r5 S/ X( ~/ O% v6 R ( r3 h6 W4 @9 G! b' m5 ^ |
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【STM32U3 评测】CAN报文接收及过滤
STM32 硬核调试技巧:用 DWT 硬件监控内存读写与函数调用
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
微信公众号
手机版