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

关于STM32F030C8T6 串口1与串口2共同使用的问题

[复制链接]
龙龙龙龙龙龙龙龙 提问时间:2015-9-30 11:30 /
阅读主题, 点击返回1楼
收藏 1 评论24 发布时间:2015-9-30 11:30
24个回答
chifen 回答时间:2015-10-4 14:20:12


  1. /*******************************************************************************
  2. * Name  : UART1_Configuration  ´®¿Ú³õʼ»¯
  3. * Deion        : Configures the uart1
  4. * Input                    : None
  5. * Output                 : None
  6. * Return                 : None
  7. *******************************************************************************/
  8. void USART_Configuration(void)
  9. {
  10.           GPIO_InitTypeDef  GPIO_InitStructure;
  11.     USART_InitTypeDef USART_InitStructure;
  12.     NVIC_InitTypeDef NVIC_InitStructure;   
  13.             
  14.                 /*Enable the USART1 Interrupt(ʹÄÜUSART1ÖжÏ)*/                                                                                                        
  15.                 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;   
  16.                 NVIC_InitStructure.NVIC_IRQChannelPriority =0;                
  17.                 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  18.                 NVIC_Init(&NVIC_InitStructure);

  19.             /*Enable the USART1 Interrupt(ʹÄÜUSART1ÖжÏ)*/                                                                                                        
  20.                 NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;   
  21.                 NVIC_InitStructure.NVIC_IRQChannelPriority =2;                
  22.                 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  23.                 NVIC_Init(&NVIC_InitStructure);   
  24.                
  25.         
  26.                 RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA, ENABLE);
  27.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE );
  28.                
  29.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);
  30.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1);        
  31.         /*
  32.         *  USART1_TX -> PA9 , USART1_RX ->        PA10
  33.            //GPIO_Mode_IN(ÊäÈë),GPIO_Mode_OUT(Êä³ö),GPIO_Mode_AF(¸´ÓÃ),GPIO_Mode_AN(Ä£Äâ)
  34.             // GPIO_OType_PP(ÍÆÍì),GPIO_OType_OD(¿ªÂ©)
  35.             GPIO_PuPd_NOPULL(ÎÞ),GPIO_PuPd_UP(ÉÏÀ­),GPIO_PuPd_DOWN(ÏÂÀ­)
  36.         */                                
  37.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10;                 
  38.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  39.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  40.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  41.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  42.     GPIO_Init(GPIOA, &GPIO_InitStructure);        
  43.         
  44.     USART_InitStructure.USART_BaudRate = 115200;
  45.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  46.     USART_InitStructure.USART_StopBits = USART_StopBits_1;
  47.     USART_InitStructure.USART_Parity = USART_Parity_No;
  48.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  49.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  50.     USART_Init(USART1, &USART_InitStructure);

  51.     USART_Cmd(USART1, ENABLE);
  52.                 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
  53.                 //--------------------               
  54.                 //RCC_AHBPeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
  55.                 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
  56.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_1);
  57.     GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_1);                        
  58.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;                 
  59.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  60.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  61.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  62.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  63.     GPIO_Init(GPIOA, &GPIO_InitStructure);        
  64.         
  65.     USART_InitStructure.USART_BaudRate = 9600;
  66.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  67.     USART_InitStructure.USART_StopBits = USART_StopBits_1;
  68.     USART_InitStructure.USART_Parity = USART_Parity_No;
  69.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  70.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  71.     USART_Init(USART2, &USART_InitStructure);

  72.     USART_Cmd(USART2, ENABLE);
  73.                 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
  74.                
  75.   
  76. }
复制代码
alisa123 回答时间:2015-10-7 19:00:45
龙龙龙龙龙龙龙龙 发表于 2015-10-4 10:20
void USART_INIT(void)
{
                GPIO_InitTypeDef  GPIO_InitStructure;

你这个代码就是串口1和串口2都能发送和接收的吗?为什么要延迟一会儿再开中断呢?什么道理?
alisa123 回答时间:2015-10-7 19:02:39
chifen 发表于 2015-10-4 14:18
你对比一下有没有区别

你这个是在stm32f030上实现的还是stm32f103上实现的,我之前在stm32f302上两个串口同时用过没问题,但是在stm32f030上就不一定没问题哈
chifen 回答时间:2015-10-7 22:28:09
STM32F103是用原来的固件库做的,STM32F030是原来F050的固件库改的的,STM32CubeMX 最近成生也试过,就是设置麻烦些都可以同时收发的
龙龙龙龙龙龙龙龙 回答时间:2015-10-8 16:52:52
alisa123 发表于 2015-10-7 19:02
你这个是在stm32f030上实现的还是stm32f103上实现的,我之前在stm32f302上两个串口同时用过没问题,但是 ...

stm32f030 系列的,串口两个不冲突,配置都差不多
alisa123 回答时间:2015-10-8 16:57:25
龙龙龙龙龙龙龙龙 发表于 2015-10-8 16:52
stm32f030 系列的,串口两个不冲突,配置都差不多

嗯,我想问为什么串口1和串口2配置好后要延迟一段时间再开接收中断呢?(在你分享的程序里面是这样写的),在配置的时候直接开不行吗?为什么?
龙龙龙龙龙龙龙龙 回答时间:2015-10-8 17:01:12
alisa123 发表于 2015-10-8 16:57
嗯,我想问为什么串口1和串口2配置好后要延迟一段时间再开接收中断呢?(在你分享的程序里面是这样写的) ...

我也是看别人的代码的,可能是内部芯片的原因,在初始化配置会有影响,之前我没延时配置,发现用不了中断,但是一延时一下就可以用了。
alisa123 回答时间:2015-10-8 17:09:33
chifen 发表于 2015-10-3 16:29
STM32 串口1和串口2 是两个独立的外设的,你对比一下1的设置2的应该也要同样设置一下, STM32F0和STM32F103 ...

你好,你同时用stm32f0的串口1和串口2的时候有没有在初始化配置完成后加延时在开接收中断?
alisa123 回答时间:2015-10-8 17:10:26
龙龙龙龙龙龙龙龙 发表于 2015-10-8 17:01
我也是看别人的代码的,可能是内部芯片的原因,在初始化配置会有影响,之前我没延时配置,发现用不了中断 ...

哦,谢谢你的回复,关键是不知道原因,为什么要加延时的原因?
苏通明 回答时间:2017-3-2 16:06:53
可以使用了吗?我使用了stm32f030的串口1和串口2,配置也是正常的,但是串口2不能使用

所属标签

相似问题

官网相关资源

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