OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6165|回复: 4

【求助】stm32f030 usart2 串口发不出数据

[复制链接]

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-10-30
在线时间
6 小时
发表于 2021-5-12 16:13:08 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 anven 于 2021-5-12 16:19 编辑

  1. #include "main.h"
  2. #include "stm32f0xx.h"


  3. int main(void)
  4. {
  5.      uint16_t i=0;
  6.         
  7.         //定义串口结构体
  8.     USART_InitTypeDef USART_InitStructure;
  9.         //定义IO口结构体
  10.     GPIO_InitTypeDef GPIO_InitStructure;
  11.         
  12.     NVIC_InitTypeDef NVIC_InitStructure;

  13.         
  14.         //初始化系统时钟
  15.     RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);

  16.         //使能端口时钟
  17.     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  18.         
  19.         //配置PA2,PA3的串口复用功能Alternate functions
  20.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1);   
  21.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1);
  22.                           
  23.     GPIO_InitStructure.GPIO_Pin         = GPIO_Pin_2 | GPIO_Pin_3;
  24.     GPIO_InitStructure.GPIO_Mode         = GPIO_Mode_AF;         //端口复用模式
  25.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  26.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;              //推挽方式输出
  27.     GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;//GPIO_PuPd_NOPULL;            //悬空
  28.     GPIO_Init(GPIOA, &GPIO_InitStructure);        

  29.         //使能串口时钟
  30.     RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

  31.         //设置串口硬件参数        
  32.     USART_DeInit(USART2);
  33.     USART_InitStructure.USART_BaudRate = 4800;
  34.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  35.     USART_InitStructure.USART_StopBits = USART_StopBits_1;
  36.     USART_InitStructure.USART_Parity = USART_Parity_No ;
  37.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  38.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  39.     USART_Init(USART2, &USART_InitStructure);
  40.         
  41.         /* Enable the USART2 Interrupt */
  42.     NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
  43.     NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
  44.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  45.     NVIC_Init(&NVIC_InitStructure);


  46.     USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);        /* 使能接收中断 */
  47.   

  48.     USART_Cmd(USART2, ENABLE);                /* 使能串口 */


  49.     USART_ClearFlag(USART2, USART_FLAG_TC);     /* 清发送完成标志,Transmission Complete flag */
  50.         
  51.         
  52.     Delay_ms(10);
  53.         
  54.     Usart_SendByte(USART2, 0x99);        
  55.         
  56.     while (1)
  57.     {
  58.         i=i+1;
复制代码
  1.    
复制代码

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-10-30
在线时间
6 小时
 楼主| 发表于 2021-5-12 16:17:01 | 显示全部楼层
本帖最后由 anven 于 2021-5-12 16:21 编辑

复制代码
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2020-10-30
在线时间
6 小时
 楼主| 发表于 2021-5-12 16:19:43 | 显示全部楼层
本帖最后由 anven 于 2021-5-12 16:21 编辑
  1.                 Usart_SendByte(USART2, i);        
  2.                 Delay_ms(1000);
  3.   }
  4. }

  5. void USART2_IRQHandler(void)
  6. {
  7.         /* 1个字节接收完毕的中断 */
  8.         if (USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)//RX
  9.         {                                 
  10.           Usart_SendByte(USART2, 0x66);        
  11.         }
  12.         /* 1个字节发送完毕的中断 */
  13.         if (USART_GetITStatus(USART2, USART_IT_TC) != RESET)//TX
  14.         {
  15.                
  16.         }
  17. }


  18. void Usart_SendByte(USART_TypeDef* USARTx,uint16_t data)
  19. {
  20.         USART_SendData(USARTx,data);Delay_ms(5);
  21.         while(USART_GetFlagStatus(USARTx,USART_FLAG_TXE)==RESET);
  22.         while(USART_GetFlagStatus(USARTx,USART_FLAG_TC) == RESET);
  23. }

  24. void Delay_ms(uint16_t data)
  25. {
  26.   uint16_t i;

  27.         for(i=0;i<data;i++)        
  28.         {
  29.                 Delay_us(100);
  30.                 IWDG_ReloadCounter();
  31.         }
  32. }

  33. void Delay_us(uint16_t data)
  34. {
  35.         uint16_t i,x;

  36.         for(i=0;i<data;i++)
  37.         {
  38.                 for(x=0;x<3;x++)
  39.                 {
  40.                         ;
  41.                 }        
  42.         }
  43. }


复制代码

回复

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2019-5-29
在线时间
17 小时
发表于 2024-4-25 23:01:15 | 显示全部楼层
no usart2
回复

使用道具 举报

8

主题

533

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2831
金钱
2831
注册时间
2016-5-13
在线时间
179 小时
发表于 2024-4-26 16:47:54 | 显示全部楼层
F030有USART2吗?


虽然不明白你们在说什么,但感觉很厉害的样子。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 00:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表