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

STM32L1串口收发以及printf打印

[复制链接]
freeelectron 发布时间:2017-1-14 23:43
      调试单片机要么仿真,要么串口打印,串口printf打印调试信息比较直观,我一般也比较倾向用串口打印调试信息。
      用L1简单的实现串口收发,以及printf打印:
      1)串口配置代码:
  1.         GPIO_InitTypeDef   GPIO_InitStructure;
  2.         USART_InitTypeDef  USART_InitStructure;
  3.         NVIC_InitTypeDef   NVIC_InitStructure;
  4.          
  5.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);
  6.        
  7.         GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);
  8.   GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);
  9.        
  10.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;
  11.   GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
  12. //  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_40MHz;
  13.         GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;    //ÍÆÍìÊä³
  14.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  15.         GPIO_Init(GPIOA,&GPIO_InitStructure);
  16.        
  17.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
  18.   GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;   //±ØÐëΪAF
  19. //        GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;
  20.         GPIO_Init(GPIOA,&GPIO_InitStructure);
  21.        
  22.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //1λPreemptionPriority£¬4λSubPriority
  23.   NVIC_InitStructure.NVIC_IRQChannel=USART2_IRQn;
  24.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
  25.         NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
  26.         NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
  27.         NVIC_Init(&NVIC_InitStructure);
  28.        
  29.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE); //±ØÐëÏÈʹÄÜ£¬²ÅÄÜÅäÖüĴæÆ÷
  30.        
  31.         USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
  32.        
  33.         USART_InitStructure.USART_BaudRate=115200;
  34.         USART_InitStructure.USART_Mode=USART_Mode_Rx | USART_Mode_Tx;
  35.         USART_InitStructure.USART_StopBits=USART_StopBits_1;
  36.         USART_InitStructure.USART_Parity=USART_Parity_No;
  37.         USART_InitStructure.USART_WordLength=USART_WordLength_8b;
  38.         USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
  39.         USART_Init(USART2,&USART_InitStructure);
  40.        
  41.         USART_Cmd(USART2,ENABLE);
复制代码
               2)串口中断接收:
  1. void USART2_IRQHandler()
  2. {
  3.         uint8_t data;
  4.        
  5.         if(USART_GetITStatus(USART2,USART_IT_RXNE)== SET)
  6.         {
  7.                 USART_ClearITPendingBit(USART2,USART_IT_RXNE);
  8.                 data=USART_ReceiveData(USART2);
  9. //                USART_SendData(USART2,data);
  10.                 if(buff_cnt>255)
  11.                         return;
  12.                 if(data==0xFE&&buff_head==0)
  13.                 {
  14.                         uart_buff[buff_cnt++]=data;
  15.                         buff_head=1;
  16.                 }
  17.                 if(buff_head==1&&data!=0xfe)  //·ÀֹͷװÁ½´Î
  18.                 {
  19.                         uart_buff[buff_cnt++]=data;
  20.                         if(data==0xEF)
  21.                         {
  22.                                 data_flag=1;
  23.                                 buff_head=0;
  24.                         }
  25.                 }
  26.         }
  27. }
复制代码
               3)工程代码
         L1.rar (5.22 MB, 下载次数: 97)

评分

参与人数 1 ST金币 +10 收起 理由
zero99 + 10

查看全部评分

收藏 4 评论10 发布时间:2017-1-14 23:43

举报

10个回答
asmhai 回答时间:2017-2-16 07:57:20
早上好!谢谢分享!
队长shiwo 回答时间:2017-2-16 08:46:27
谢谢分享
曹世鹏 回答时间:2017-9-25 19:25:28
它的串口2并没有输出呢。printf函数也没有打印出来。没有初始化串口1.
五哥1 回答时间:2017-9-26 12:29:58
谢谢分享
anzaitian88 回答时间:2018-5-15 12:48:33
谢谢分享 学习ing
zwyj 回答时间:2018-11-1 17:30:18

谢谢分享
little1024 回答时间:2019-6-21 11:06:23
谢谢分享
zts329547875 回答时间:2019-7-12 14:45:04
STM32L1新建工程,下载看看
油炸肥仔 回答时间:2020-4-2 12:28:38
感謝分享 我測試看看
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

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