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

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

[复制链接]
STMCU小助手 发布时间:2021-12-2 14:44
需要用到的外设文件有:
. X5 B& p" J) t8 S7 {& E8 `$ x0 T9 ?4 \' l3 ?
  1. stm32f2xx_usart.c; //串口相应函数. Y5 j5 |8 P: y1 b" L9 [9 t" g

  2.   Z& G* \; x0 d- K
  3. stm32f2xx_gpio.c; //GPIO初始化3 [, R0 B6 @9 Y0 M# m5 X
  4. 3 @- {: x" I* X8 p+ L
  5. stm32f2xx_rcc.c; //时钟初始化& d$ L  p$ W- t& o! o( e$ _* ^
  6. - h8 w% `( x  X
  7. misc.c; //中断初始化
复制代码

( B! |9 v( [% |  {  H2 S2 M初始化主要包括8个部分。. y. c3 w5 H& e

) L/ ^% P3 I, R! B( o1、 使能GPIO时钟:, s8 u0 B7 E( `- Z

4 p% h) [! ~2 l  [' D
  1. RCC_AHB1PeriphClockCmd(GPIOX, ENABLE);
复制代码

7 r6 B$ i/ S. i: j4 C5 Y2 l2、 使能UART时钟:% v' h- I0 U1 @  J* b+ w
  1. RCC_APB1PeriphClockCmd(RCC_APB1Periph_USARTX, ENABLE);
复制代码

5 t' P$ L2 s1 D: {; z: `- T3、 将GPIO引脚连接到USARTX:
3 C" N4 ^7 |# l4 H$ T  x
: W' X: Y/ r1 D& R9 t原始函数:
  1. GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF);
复制代码
$ P8 R6 h. k1 v1 S, J9 ^
GPIO_AF可选如下:* F+ P3 [6 i* G' [( p" y" n$ R. j
  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;
复制代码

. J7 w& L4 C* x' u. M连接TX:2 Q' ?2 ]' p' C8 |
  1. GPIO_PinAFConfig(GPIOX, GPIO_PinSourceY, GPIO_AF);
复制代码
4 o. O1 M. H6 V
连接RX:! C. V7 H; d4 X. M; K& x' L& I
  1. GPIO_PinAFConfig(GPIOX, GPIO_PinSourceY, GPIO_AF);
复制代码

* i0 S- q. A7 J1 H4、 配置GPIO的TX和RX:) B1 ~! z/ C7 ?! W. h$ ~  _
  N- o! }7 x& Y8 M& ~' s. U! r4 L) y
TX配置:3 O5 @7 A2 z) j" f1 X. U
  1. GPIO_OType = GPIO_OType_PP;$ \: K! I0 N$ U6 h5 Q# J7 F/ g

  2. $ [7 v* W, x4 `, ]: c
  3. GPIO_PuPd = GPIO_PuPd_UP;4 w8 \5 f2 K5 M0 c/ g
  4. 6 @5 y$ a- C  ]7 S  l' c
  5. GPIO_Mode = GPIO_Mode_AF;
    + E$ ^( P$ `+ l8 n
  6. # G8 S5 A) x5 A7 q, F% @
  7. GPIO_Pin = GPIO_Pin_XX;# D4 U1 ?2 ?: }
  8. % t/ N  }9 P) S
  9. GPIO_Speed = GPIO_Speed_50MHz;
    / a6 a0 h, }0 \+ D
复制代码

6 o) X& v: D$ m' u1 U6 dRX配置:2 E; a& \" x; E
  1. GPIO_Mode = GPIO_Mode_AF;
      p4 n% |3 z  V/ b8 t$ M# Y

  2. 3 m4 E9 z, o5 w
  3. GPIO_Pin = GPIO_Pin_XX;
    + J; Y) D& Z; S+ c7 T: @
复制代码

3 C5 Z3 i# y' J9 }5 d, d- I5、 串口初始化:
& G3 @0 S9 b, N
  1. USART_InitStructure.USART_BaudRate = 115200;
    : w7 J* j5 E4 A6 R! k. v0 `. R

  2. , b! g' h* c: x1 D2 w  t
  3. USART_InitStructure.USART_WordLength = USART_WordLength_8b;% b9 H. Y' o4 c! Z  G+ N9 D
  4. 2 \; q  o  C% ?- ?
  5. USART_InitStructure.USART_StopBits = USART_StopBits_1;
    2 `5 |( \& l' t# m/ v4 a

  6. 5 F( {; |' o, a/ ?9 Y+ {6 ~* J
  7. USART_InitStructure.USART_Parity = USART_Parity_No;- V. e0 g' x4 e2 |/ R- }9 Q
  8. $ A3 v0 ~1 Z( x% J
  9. USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    5 _5 ^7 u, M* n" l

  10. * V$ L; o1 G; j( h6 u
  11. USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    6 D' d- J  l( i  C7 ?
  12. * S2 S" l3 _( S1 ?; f& L! d
  13. USART_Init(USARTx, &USART_InitStructure);
复制代码
* ^5 I& g# I% }

* ^4 p' R+ K& Y5 P! @这样的配置是从网上下来的,为什么串口还是无法发送数据??
$ m8 `: V( y5 A  _
: v0 G/ D1 H: v: r8 H+ S/ d1 |
* l9 Q. M; V: g& q
收藏 评论0 发布时间:2021-12-2 14:44

举报

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