|
串口协议和RS—232标准 串口通信协议:是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485 RS—232标准:RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。因此,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成rs232类型,再交叉连接。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。 RS232电平与TTL电平的区别$ e6 q2 J# x5 L# |( k+ f A TTL标准:3 v2 B+ m# G+ q+ L TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。! f, W: N l- [* D W RS232标准: 逻辑1的电平为-3~-15V,逻辑0的电平为+3~+15V,注意电平的定义反相了一次* Z/ H+ m- `( Q9 [6 b+ R/ U USB/TTL转RS232: c0 W: y/ |2 ]8 V8 @
CH340串口安装+ Q4 b% a* }: W2 ]; H, h: F5 e / z- \. D: j( A- M1 X% p! O: q
双击安装即可,检查是否安装成功,插入USB串口后,点击设备管理器,检查端口是否有CH340 * c+ u# K7 I; R7 ]+ W
0 W8 H1 J, {: r* y& f 安装stm32cubemx并编写程序( E. ~: A. C' Y1 G; d& V+ C 傻瓜式安装,把所有的框都选上 安装完成后,点击help,下载依赖包( n* g. Q7 `! W* G8 x- g
下载完成后,选择自己的芯片,选择前面的复选框下载,绿色代表下载好了$ O9 {! S3 k' r$ A: N. v1 Q 你们选择后,点击install now就行' V4 G) i+ F$ r" n5 m8 l5 q
. D' U9 \9 |' w* F4 x8 o0 L5 A 下载完成后回到home界面。点击图中的地方,创建新项目' j4 u/ |, R. Q$ O a, \8 W# }
7 t+ _- @# B+ w* j 点击part name输入自己的芯片,以stmc8t6 为例,之后中间出现的信息点击之后,在点击start project 0 l! m$ ^. ?' m5 Y/ G/ p* L O
点击system core,进入里面的sys,在debug那里选择serial wire% `8 Z1 K1 m; d1 H+ F. I
接下来进行配置时钟,进入rcc,有两个时钟hse,lse,我们要用GPIO借口,这些接口在APB2里4 o3 u( p+ M' I) ]9 l 观察时钟架构,APB2由hse时钟控制,同时在这个界面把PLLCLK右边选上 0 w" D1 |/ r2 M; N; ]/ f
所以我们把hse那里设置为crystal/ceramic resonator就行了) X0 \' d& g5 w( H c* W6 F
接下来就是点击相应的引脚设置输出寄存器,output哪一项,一共三个PA7 PB9 PC15
接下来点击system core里的GPIO,点击引脚名,把输出等级改为hight& e+ X+ ~/ B. h3 f/ a9 z. V mode不用改
点击project manager 配置好自己的路径名和项目名,然后改IDE为MDK—ARM! p% J, K- a6 j : Z6 y7 w. q0 [1 G. V# K0 W5 p
" a' j: @# W+ y! t) Y' ]4 o: H 进入code generate界面,选择生成初始化文件.c/.h,之后在点击generate code就行了$ w) h9 e2 C3 g
% o+ X# f! W' @3 u/ R' x7 X7 \' i& E3 u 打开刚刚生成的项目将main.c的主函数部分用下列函数代替
在烧录运行,串口要断电置boot0为0,之后即可编译运行成功6 U/ r* [5 x. N4 X! ? 实现led灯的周期闪烁) ~! w7 s( M6 @1 I8 x : Y6 l; H6 E6 _0 n- u
进入flymcu进行烧录 ; f2 y( r s0 X4 H- `
, i" i8 i) P$ q: s4 V- Z% A: | 效果图如下
' N6 p, W! m! w- E# z; o0 x4 C: G) a: C 用stm32完成USART串口通信1 ~6 Q: u& _' G! _) Z- v& A% l 打开stm32cubeMX,进入我的工程,选择芯片,开始进入% @$ z7 W8 E7 [9 a
$ o& t j _, D3 Y h 接下来选择时钟配置 ' }8 ]& `+ i- r6 k: Z
设置USART2,点击MODE,选择Asynchronous5 ~4 A/ d5 D- ^2 m% k ) e, W1 P( S3 Z% _2 S9 p& W, u
接着点击CLOCK configurstion选择HSE,PLLCLK & Y7 U8 f9 S; L# y# G" C$ k9 j* {" ~
设置中断,在NVIC SEtting中点击Enabled, s W! a0 L% o! V3 E; [
9 n8 b4 c5 f" h" M 后面设置路径,只需要修改Application Structure为Basic,在Toolchain/IDE为MDK—ARM,在Code generate勾选生成项目$ a9 s9 {6 R8 @ ' l; a" a% G! W1 ]9 r
2 m) h: s9 T# m. N0 m# T" T0 X0 F 后面生成工程打开即可. _; N( D' o- D4 t; O$ [3 b# W$ m 只需要把main.c里面的程序改为下列代码. d: C" q Z3 D- O" k
后面进行烧录 打开串行助手打印出hello windows
4 r+ `& Z, G) t. ?1 s8 K: D) z$ u , k; I5 N, B- \9 t7 e 接下来进行波形观察 对keil进行相关操作 & P! j% K! c1 {# H. z% K
# ^3 P6 H3 E3 p. ?; I. L; q 之后打开逻辑分析仪,选择端口,设置bit,运行就可观察到波形
. n3 p1 b+ X2 ?. V& R v 大约1s一个波形2 n) `. l/ y O e. _# U1 S' v; y
总结; c% J5 s, K" K; ^ 通过本次实验我更加了解了stm32cubeMX的分装功能,更加了解到stm32d寄存器映射原理,最终完成了本次实验) _4 H# z1 K- o1 n3 V. j ———————————————— 版权声明:&是梦都会空; E* a$ S' R. z2 @ 如有侵权请联系删除 |
STM32C542RC开发板的串口不定长数据接收实验
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
STM32L562DK探索板——串口通讯的再测试
经验分享 | STM32 IAP应用时的跳转注意事项
实战经验 | 碰到hardfault问题你还在死磕代码吗?
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
微信公众号
手机版