
串口协议和RS—232标准 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485 RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。9 Y4 r$ d- B6 @8 u6 ~. ] RS232电平与TTL电平的区别; v: e- p/ v* T4 M" u; w A TTL标准: TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 RS232标准:+ c: D" Y0 t) f! U. r 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次" S! U) x) G" F8 Y6 a; Y USB/TTL转RS2329 E+ N d& v: N9 } ![]() CH340串口安装 r3 }" n2 K2 O4 v : Z9 P4 q) r$ R7 u e ![]() - F9 q' E w6 B: ]& i 双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH3407 Z C- }, Z0 ` 8 Q/ p! Q6 c% H1 L1 Y ![]() 0 ?% F' V {7 T% d; X4 X & d( @- @2 ]4 w, U 安装stm32cubemx并编写程序 傻瓜式安装,把所有的框都选上( Q. B& l+ g7 q+ s7 _4 R0 D, K 安装完成后,点击help,下载依赖包" ^0 B, q& r2 ^ ![]() 3 h* S" [' J; l 下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了+ B6 P# ~' u+ G: b \& R4 ` 你们选择后,点击install now就行# R$ D" m) ~6 F+ w1 L: \ ![]() 下载完成后回到home界面。点击图中的地方,创建新项目) b- l/ U6 c9 I* C * d& W9 R, I% J0 j7 u1 Q ![]() 点击part name输入自己的芯片,以stmc8t63 ]$ G; \5 G; } ~. t5 C' a1 z 为例,之后中间出现的信息点击之后,在点击start project 6 W- D6 E Y& S: G/ C3 q ![]() 点击system core,进入里面的sys,在debug那里选择serial wire4 G+ t0 N( u& B. U1 k& f ![]() ![]() 接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上9 T% M- ]0 a9 F! j% `, ^ ![]() 所以我们把hse那里设置为crystal/ceramic resonator就行了 - G9 j5 \" N3 A- k* p( Y' `) @ ![]() ; i% O9 E# [. `1 _; n; z 接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA73 u m, h6 Z9 w8 N3 f7 C PB9 PC15 ![]() 接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight8 ?' l/ \& Y- Z, X( e( e mode不用改 + s$ t# M- Q1 q' |! E' U ![]() # `- ]% }; ~/ Q* j 点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM- L; S l( ^& \ ![]() 进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了; k2 s% c; U! K+ s : q, D5 C, p& U* P6 r& \1 A ![]() , a) O: U, l5 m! S" A) l 打开刚刚生成的项目将main.c的主函数部分用下列函数代替8 T& C7 ]) f, M4 |! E1 U# x
![]() 8 ?3 ?7 N- ^4 [6 a 在烧录运行,串口要断电置boot0为0,之后即可编译运行成功" m; A0 p; v+ O& Z3 d3 a 实现led灯的周期闪烁 Q) e& z, y( O$ ^/ Z$ T' k- m 5 x C" W: ]5 L$ M& ]5 ]6 W ![]() ' U, L- {# L' j( m% f 进入flymcu进行烧录) j* y. Q, s! x8 h% \' C( l ![]() " L0 T( G3 N0 L0 M 效果图如下# ]" l, z0 v& g9 i# s, l7 m7 p! g ![]() 3 Z$ m/ y2 Y/ x 用stm32完成USART串口通信 打开stm32cubeMX,进入我的工程,选择芯片,开始进入, k# ]; O5 I/ Y" {! g- E 6 b) E! a$ [$ ~6 h9 @& Y ![]() 1 \+ F: W# M( z, {- s8 y 接下来选择时钟配置 ![]() 1 Y) a* h: b0 S) a3 x 设置USART2,点击MODE,选择Asynchronous ![]() 6 g5 ?0 |" ^$ O; q% e2 S7 n 接着点击CLOCK configurstion选择HSE,PLLCLK; K* r- ^# ~+ a9 p4 b: q ; n9 J% F1 V d. k4 @5 t ![]() 设置中断,在NVIC SEtting中点击Enabled, H, A( y5 n9 u9 X, T7 i 8 X1 o: v1 K2 x/ P+ y9 p: M' Y ![]() 4 s/ x4 b b" B. Z5 N 后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目 ![]() ![]() g0 P7 o4 ~( J! g( L7 W* m3 I 后面生成工程打开即可 只需要把main.c里面的程序改为下列代码
![]() 后面进行烧录- T& |% d( ^" U' S 打开串行助手打印出hello windows ![]() @# x, w* s/ R, d3 n; U 接下来进行波形观察 对keil进行相关操作; Y) V/ O) G4 P# J; r8 F% x $ Z; A% H3 Y6 ?; {/ V7 h; U ![]() 之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形 : ?5 p$ o% s+ ], ^, J& W: T ![]() U3 L: {( Q; L$ I) t+ Y8 |: q2 Z 大约1s一个波形 1 R0 M3 s# C, U3 Q! u) k9 Z8 } ![]() 总结( j" f; @( L; D5 u7 W; G; N' {( h3 ? 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验 ———————————————— 版权声明:&是梦都会空$ g, C" D" u2 }. w. H 如有侵权请联系删除1 r0 ^: S8 _" j8 s4 L/ K" }: x9 u1 \ |
【STM32U3评测】实现双通道串口通信系统
OpenBLT移植到STM32F405开发板
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
【NUCLEO-WB09KE评测】STM32WB09KE的内部BootLoader使用
11111111111111111111111111111111111
STM32芯片ISP串口程序一键下载—FlyMcu
如何使用CubeMX实现STM32的串口通信以及对printf等函数的重定向
基于STM32串口中断之缓存区溢出卡死经验分享
基于STM32 Azure USBx 开发的经验分享
NUCLEO-U545RE-Q评测】4. 串口实用收发测试