打印

stm32串口,同时初始化后,3正常,2不管用

[复制链接]
3516|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
atgjlc|  楼主 | 2012-11-26 18:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SER2_Init (void) {
  RCC->APB1ENR  |= (1UL << 17);         /* Enable USART2 clock                */
  RCC->AHB1ENR  |= (1UL << 3);          /* Enable GPIOD clock                 */
  /* Connect PD5 and PD6 to Alternate Function 7 (AF7) */
  GPIOD->MODER  &= (3 << 2*5) | (3 << 2*6);
  GPIOD->MODER  |= (2 << 2*5) | (2 << 2*6);
  GPIOD->AFR[0] &= ~0x0FF00000;
  GPIOD->AFR[0] |=  0x07700000;
  /* Configure USART2: 115200 baud @ 42MHz, 8 bits, 1 stop bit, no parity     */
  USART2->BRR = (22 << 4) | 12;
  USART2->CR3 = 0x0000;
  USART2->CR2 = 0x0000;
  USART2->CR1 = 0x200C;
}
void SER3_Init (void) {
  int i;
  GPIO_InitTypeDef GPIO_InitStructure;

  RCC->APB1ENR  |=  (   1 << 18);       /* Enable USART3 clock */                                          
  RCC->AHB1ENR  |=  (   1 <<  3);       /* Enable GPIOD clock  */
  
   /* Connect PD8 and PD9 to Alternate Function 7 (AF7) */
  GPIOD->MODER  &= (3 << 2*8) | (3 << 2*9);
  GPIOD->MODER  |= (2 << 2*8) | (2 << 2*9);
  GPIOD->AFR[1] &= ~0x000000FF;
  GPIOD->AFR[1] |=  0x00000077;   
  /* Configure USART2: 115200 baud @ 42MHz, 8 bits, 1 stop bit, no parity     */
  USART3->BRR = (22 << 4) | 12;
  USART3->CR3 = 0x0000;
  USART3->CR2 = 0x0000;
  for (i = 0; i < 0x1000; i++) __NOP(); /* avoid unwanted output              */
  USART3->CR1 = 0x200C;           
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_Init(GPIOD, &GPIO_InitStructure);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_Init(GPIOD, &GPIO_InitStructure);
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
沙发
airwill| | 2012-11-27 20:24 | 只看该作者
我怀疑 IO 口配置的问题

使用特权

评论回复
板凳
jxmzzr| | 2012-12-2 22:44 | 只看该作者
感觉stm的库很容易上手,但是也很容易云里雾里的把人绕进去

使用特权

评论回复
地板
JasonWangFAE| | 2012-12-3 13:42 | 只看该作者
Peripherial Clock ....

RCC_APB1PeriphClockCmd<--UART3
RCC_APB2PeriphClockCmd<--UART2

please modify your code as below ,
  RCC->APB2ENR  |= (1UL << 17);         /* Enable USART2 clock                */
   RCC->AHB2ENR  |= (1UL << 3);          /* Enable GPIOD clock                 */

使用特权

评论回复
5
atgjlc|  楼主 | 2012-12-6 16:43 | 只看该作者
JasonWangFAE 发表于 2012-12-3 13:42
Peripherial Clock ....

RCC_APB1PeriphClockCmd

问题解决了,是设置模式时,第二个覆盖第一个的设置了。所以把它们每个单独拿出来都可以用,呵呵,谢谢啦!:handshake

使用特权

评论回复
6
JasonWangFAE| | 2012-12-10 08:58 | 只看该作者
GOOD

使用特权

评论回复
7
uet_cache| | 2012-12-10 10:25 | 只看该作者
寄存器好麻烦,懒得看!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

10

帖子

0

粉丝