你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32F2系列之USART学习

[复制链接]
STMCU小助手 发布时间:2021-12-2 14:44
需要用到的外设文件有:
" H: p' V: F$ h0 g
% f3 {+ m/ {$ C2 r, Z  F
  1. stm32f2xx_usart.c; //串口相应函数; |9 j4 b" {; k2 P! D& n7 z
  2.   E  `* v, F3 h
  3. stm32f2xx_gpio.c; //GPIO初始化8 q. L* }1 s! w" w
  4. 5 O0 c' ^+ m- ~# U5 O" w
  5. stm32f2xx_rcc.c; //时钟初始化7 G& P5 A$ F) j8 C" K5 M4 y! j$ D# @
  6. - F' z7 ^% {, h% Y! [7 }- y
  7. misc.c; //中断初始化
复制代码

: H* O% K/ I3 f9 G# f初始化主要包括8个部分。
% p% z; K+ A, {8 D: R, b% L
- f6 R" l' I6 Z# w& s1、 使能GPIO时钟:0 ~& |) z$ |  j; Z0 {6 q
: c/ u* y. Y; J0 [( g! F) l2 }: o
  1. RCC_AHB1PeriphClockCmd(GPIOX, ENABLE);
复制代码

% h% Q+ k7 o- f: }9 ]2、 使能UART时钟:9 X5 K; i- h1 n) ^, r: p
  1. RCC_APB1PeriphClockCmd(RCC_APB1Periph_USARTX, ENABLE);
复制代码
$ g* R' S$ p4 x
3、 将GPIO引脚连接到USARTX:
2 U/ ~2 c# F6 v+ c5 {% ~3 g3 }/ p1 Q9 T! E$ f/ O, Q9 e
原始函数:
  1. GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);
复制代码
* Y6 Z3 P8 F! F+ y, N
GPIO_AF可选如下:
  @7 c7 r# T/ o" z8 O; g8 e' r
  1. GPIO_AF_RTC_50Hz;GPIO_AF_MCO;GPIO_AF_TAMPER;GPIO_AF_SWJ;GPIO_AF_TRACE;GPIO_AF_TIM1;GPIO_AF_TIM2;GPIO_AF_TIM3;GPIO_AF_TIM4;GPIO_AF_TIM5;GPIO_AF_TIM8;GPIO_AF_TIM9;GPIO_AF_TIM10;GPIO_AF_TIM11;GPIO_AF_I2C1;GPIO_AF_I2C2;GPIO_AF_I2C3;GPIO_AF_SPI1;GPIO_AF_SPI2;GPIO_AF_SPI3;GPIO_AF_USART1;GPIO_AF_USART2;GPIO_AF_USART3;GPIO_AF_UART4;GPIO_AF_UART5;GPIO_AF_USART6;GPIO_AF_CAN1;GPIO_AF_CAN2;GPIO_AF_TIM12;GPIO_AF_TIM13;GPIO_AF_TIM14;GPIO_AF_OTG1_FS;GPIO_AF_OTG2_HS;GPIO_AF_ETH;GPIO_AF_FSMC;GPIO_AF_OTG2_FS;GPIO_AF_SDIO;GPIO_AF_DCMI;GPIO_AF_EVENTOUT;
复制代码

% {2 a0 i) \$ L连接TX:& S" A% d) u2 x
  1. GPIO_PinAFConfig(GPIOX, GPIO_PinSourceY, GPIO_AF);
复制代码
9 W4 d- K0 r$ E4 c7 ?
连接RX:
) X# [& u3 ^% e1 ~
  1. GPIO_PinAFConfig(GPIOX, GPIO_PinSourceY, GPIO_AF);
复制代码

( f% m! p4 ~0 @* K( V( y8 `4、 配置GPIO的TX和RX:
$ r- H9 L+ S! U7 |1 C2 v, q% S
" n/ n6 ^+ ~, w& f* xTX配置:. I2 v  {: Y' g9 {" k( ]
  1. GPIO_OType = GPIO_OType_PP;
    ) R5 s$ T# s$ ]; \' c& m( U! H; q

  2. ; |  w7 ]5 L3 ~: R% C6 s) S
  3. GPIO_PuPd = GPIO_PuPd_UP;! T: a) \0 w% d& z! ]

  4. + \- X' I' U! C3 n
  5. GPIO_Mode = GPIO_Mode_AF;
    & P: }0 U& S; D
  6. $ g, l& B' o; l3 K
  7. GPIO_Pin = GPIO_Pin_XX;
    2 k3 j$ T; C3 ~3 y: O
  8. 1 T+ J* ?: E$ z) a
  9. GPIO_Speed = GPIO_Speed_50MHz;% c* \) `0 j3 m5 n# v
复制代码

! e) ]% A, p- X+ M: r9 w1 [, FRX配置:7 ]6 ^0 w1 F1 K
  1. GPIO_Mode = GPIO_Mode_AF;% Z2 S8 f  F# ^. y' k+ ?5 B5 I

  2. 9 F3 h! j) {( }& }
  3. GPIO_Pin = GPIO_Pin_XX;8 ?! ~. o: f' b" ]+ q* g
复制代码

  o" j4 Q' S3 ]: C" f! b5、 串口初始化:
% H6 |9 K# P1 O. e! X- v9 m6 L
  1. USART_InitStructure.USART_BaudRate = 115200;1 v& k; L8 c% l1 M6 l  F
  2. 0 \6 d1 K/ |& A' G
  3. USART_InitStructure.USART_WordLength = USART_WordLength_8b;% E, o$ @, n" ]- B- d% m7 u) h

  4. ' b; t/ q- a, L
  5. USART_InitStructure.USART_StopBits = USART_StopBits_1;
    5 N1 q* R/ ^  Q- k1 B2 |) O4 D

  6. + f8 F5 r1 o! ?) g' k5 ~
  7. USART_InitStructure.USART_Parity = USART_Parity_No;/ a% v: L2 Q2 `, ^/ L

  8. ) P% t# x5 a: l  ?) K3 }7 k
  9. USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;; K; L; d* M1 }, v. o  y: c# T) o
  10. $ S& k  _# d1 _3 @# E  R
  11. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;" L6 a/ K- L! f* W) k

  12. - l- \8 Q0 L( e$ r9 d% s) d
  13. USART_Init(USARTx, &USART_InitStructure);
复制代码
0 U: j9 x+ f7 g% X1 n
3 z+ ]6 e9 V' {
这样的配置是从网上下来的,为什么串口还是无法发送数据??1 Z5 d2 h* Y! z6 U$ k( y  F- ?7 N# k; s
! H1 s$ [5 |. n$ D# ?; k! [
8 H0 T2 g" |5 ?6 q$ R' R  _! U# _# ]
收藏 评论0 发布时间:2021-12-2 14:44

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版