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

STM32F103寄存器版串口发数据代码整理分享

[复制链接]
周大侠max 发布时间:2017-3-24 15:15
本人还是个STM32的菜鸟,用了库函数版本的USART配置不懂其原理,于是自己结合网上资料摸索,特地给出寄存器版本的串口配置以及源代码分享,同时也整理自己的思路。
; G" R8 \! k# ?8 E% ]. N
* @8 ~) I) J. W2 j8 _: n
  1. #include<stm32f10x.h>) }. }/ T; ]! Y0 l" ^* G
  2. #define uchar8 unsigned char1 \9 t' Q& g" e7 w; J+ b
  3. #define uint32 unsigned int' U# C6 s! Z8 x( a/ G
  4. - Q- M' f# |' a6 i6 ?1 @$ w
  5. uchar8 a[13]="Hello World!";$ w/ M; B3 |3 F% t( S6 `$ _1 Z
  6. + ]$ v! Z1 P, B4 _
  7. void RCC_Config(void)
    1 E' R! I9 ?& z( @" ^, K
  8. {+ v# y# s4 S9 h9 L- ]
  9.         RCC->APB2ENR |= 0X4005;
    2 Z3 @. E+ O3 O% ]* h1 }9 [
  10. }- }' q% o" C  x+ m+ T9 ]5 J% U" V
  11. void GPIO_Config(void)
    & W- K7 s2 Y) g7 r5 T$ J
  12. {
    + v- m$ L" Y" p5 m9 Q7 J) H7 y% J
  13.         GPIOA->CRH |= 0X000000b0;
    * ]: y8 }' `# W2 Y
  14. }5 O$ y" Y8 e; w! f, u7 C: z( P

  15. - ]6 T. Q! \  `, ^8 v  k9 [& T* M
  16. void USART_Config(void)' C0 d$ G, z) C" j2 f6 L
  17. {
    ; b# r9 Z8 e* s* b( o( w; l+ s6 W
  18.         USART1->CR1 |= 0X200C;% {3 u, l3 q( w
  19.         USART1->BRR |= 0X1D4C;
    6 E( H% N+ R. _" P9 |1 d
  20. ; B8 h+ k" \* j8 z. j( Y
  21. }
    - d( R( m6 w" r6 }3 ]
  22. int main(void); G3 F: M( U& o* s. d
  23. {
    0 n) x( y( C4 F$ U$ O  Q2 j
  24.         uchar8 i=0;
    0 A/ U2 o7 ]' q. g! I& C
  25.         RCC_Config();+ O; {0 `5 |, W. K" F
  26.         GPIO_Config();' p  t) H3 q1 G* M+ p
  27.         USART_Config();
    3 j3 ~8 y" E3 k2 G8 L, c8 ~7 n" x
  28.         while(1); |: S- R- [& m  g# T4 D) D
  29.         {
    ; W3 c/ O& _/ D3 D7 ?5 l5 G
  30.                 USART1->DR = a[i++]; 1 P! ^- y4 ?% p" m" m
  31.                 while((USART1->SR)==0);) E% x9 W1 t  G+ F
  32.                 if(a[i] == '\0' )
    - e7 E0 ~! K% t) `; G
  33.                 {
    2 f. L* ?$ a' q8 Y. q
  34.                         i=0;" y, V3 E- P6 R) {
  35.                         while(1); : F6 @3 l) A& y% M: x
  36.                 }
    * y, W! }0 @+ ~/ |1 Z* y
  37.         }
    : ~7 y6 M0 n+ g+ e% @- X
  38. }
复制代码

  g8 _# W+ A, n/ C1 w1 J
赞 收藏 1 评论1 发布时间:2017-3-24 15:15

举报

1个回答
samhong 回答时间:2017-3-24 16:23:49
用的时候就得把 STM32的寄存器使用说明.PDF 一书打开,要不不记得太多的 STM32的寄存器,谢谢楼主的分享。

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版