[STM32F4] stm32f429i Discovery USART problem

[复制链接]
2529|6
 楼主| 电子write_cai 发表于 2014-4-9 17:32 | 显示全部楼层 |阅读模式
本帖最后由 电子write_cai 于 2014-4-9 17:35 编辑

Hi,all:
       The  stm32f429i Discovery USART  interface  is   PA10,PA9.

The code is correct. but tx  data can not captured by the oscilloscope.

add the coding....

/*******Main code*****/
  1. int main(void)
  2. {

  3.         delay_init();
  4.        
  5.         USART1_init();
  6.         NVIC_Config();
  7.         LED_Init();

  8.   while (1)
  9.   {
  10.                 LED0=1;                                               
  11.                 LED1=1;
  12.                 delay_ms(500);
  13.                 LED0=0;                                               
  14.                 LED1=0;
  15.                 delay_ms(500);
  16.        
  17.                 printf("STM32F429I DISCOVERY USART INITOK\r\n");
  18.   }
  19. }

/***********USART_Init()********/
  1. void USART1_init()
  2. {
  3.         GPIO_InitTypeDef GPIO_InitStructure;
  4.         USART_InitTypeDef USART_InitStructure;
  5.         USART_ClockInitTypeDef USART_ClockInitStruct;
  6.    
  7.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA , ENABLE);
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  9.         
  10.         GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);      
  11.         GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);

  12.       
  13.         GPIO_StructInit(&GPIO_InitStructure);                                                
  14.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
  15.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;                                    
  16.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  17.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  18.         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  19.         GPIO_Init(GPIOA,&GPIO_InitStructure);
  20.             
  21.         /*??PA10?Rx??*/
  22.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
  23.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;                                    
  24.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  25.         GPIO_Init(GPIOA,&GPIO_InitStructure);

  26.         /*??USART1,?????Cotex M3??*/
  27.         USART_StructInit(&USART_InitStructure);
  28.         USART_InitStructure.USART_BaudRate =115200;                           
  29.         USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  30.         USART_InitStructure.USART_StopBits = USART_StopBits_1;
  31.         USART_InitStructure.USART_Parity = USART_Parity_No;
  32.         USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  33.         USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  34.         USART_Init(USART1, &USART_InitStructure);
  35.         USART_ClockStructInit(&USART_ClockInitStruct);  
  36.         USART_ClockInit(USART1, &USART_ClockInitStruct);

  37.         USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                          
  38.         USART_Cmd(USART1, ENABLE);   
  39.         USART_ClearFlag(USART1, USART_FLAG_TC);
  40. }
/*********NVIC_Config(void)***********/
  1. void NVIC_Config(void)
  2. {
  3.       NVIC_InitTypeDef NVIC_InitStructure;
  4.       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);                        
  5.       NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;                    
  6.       NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;            
  7.       NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;                     
  8.       NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                       
  9. }
/*********Usart Interrupt**********/
  1. void USART1_IRQHandler(void)
  2. {
  3.         uint16_t uData=0;
  4.   if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)               //???????
  5.   {
  6.         USART_ClearITPendingBit(USART1,USART_IT_RXNE);
  7.         uData=USART_ReceiveData(USART1);
  8.         USART_SendData(USART1, uData);                                       //???????
  9.   }
  10. }
mmuuss586 发表于 2014-4-9 18:38 | 显示全部楼层

有空我也测测
airwill 发表于 2014-4-9 20:18 | 显示全部楼层
从手册可能, PA9, PA10 是完全空脚. 设置好, TxD 肯定能够测到波形.
可以短接这两个引脚, 看看自发自收, 能否收到数据.
如果能够收到, 怀疑是你的示波器设置问题了
 楼主| 电子write_cai 发表于 2014-4-10 08:46 | 显示全部楼层
airwill 发表于 2014-4-9 20:18
从手册可能, PA9, PA10 是完全空脚. 设置好, TxD 肯定能够测到波形.
可以短接这两个引脚, 看看自发自收, 能 ...

if you have the PCB,you can help me to test it . thanks
yinhaix 发表于 2015-8-12 20:22 | 显示全部楼层
songchenping 发表于 2015-8-12 21:00 | 显示全部楼层
是官方代码吗
songchenping 发表于 2015-8-12 21:01 | 显示全部楼层
建议还是用示波器好好测测波形吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:只要你是拼多多新用户就可以加我微信,微信号772880135验证您是新用户后立刻微信转你20元。欢迎朋友加我微信,多年21ic用户,诚信为本!

157

主题

1534

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部