打印
[STM32F0]

STM32F070串口程序的问题

[复制链接]
3019|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JY-DX-JY|  楼主 | 2015-5-20 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我把STM32F070的虚拟串口给搞出来了,COM9.现在我写了个程序,可是COM9数据收不到,也发不出来。

程序如下:
void uart1_init(INT32U Baud)
{
        USART_InitTypeDef  USART_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
        NVIC_InitTypeDef  NVIC_InitStructure;
                /* Enable SYSCFG clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG|RCC_APB2Periph_USART1, ENABLE);
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE);                                //ʹÄÜÓõ½µÄGPIOAʱÖÓ
        //RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART1,ENABLE);
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);                                                                        //ÅäÖÃPA9(´®¿Ú1TXD)ΪÊä³ö¸´ÓÃÍÆÍì
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;
        GPIO_Init(GPIOA,&GPIO_InitStructure);                                                                        //ÅäÖÃPA10(´®¿Ú1RXD)ΪÊäÈë
       
        USART_InitStructure.USART_BaudRate=Baud;                                                        //²¨ÌØÂÊ
        USART_InitStructure.USART_WordLength=USART_WordLength_8b;                        //8λ
        USART_InitStructure.USART_StopBits=USART_StopBits_1;                                        //1¸öֹͣλ
        USART_InitStructure.USART_Parity=USART_Parity_No;                                                        //²»Ð£Ñé
        USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;                                                //²»½øÐÐÁ÷¿ØÖÆ
        USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;                                                                                                                        //ģʽΪ·¢ËͺͽÓÊÕË«Ïò
       
        USART_Init(USART1,&USART_InitStructure);                                                                                        //¸ù¾ÝUSART_InitStructureÒÑÌîдµÄ²ÎÊý³õʼ»¯´®¿Ú1
        USART_Cmd(USART1,ENABLE);                                                                                                                                                        //ʹÄÜ´®¿Ú1
       
        USART_GetFlagStatus(USART1,USART_FLAG_TC);                                                                                //Çå³ý½ÓÊÕÖжϣ¬½â¾öµÚÒ»¸ö×Ö½Ú·¢²»³öÈ¥µÄÎÊÌâ
       
        NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;                                                                //USART1ÖжϺÅ
        NVIC_InitStructure.NVIC_IRQChannelPriority=0;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;                                                                        //IRQͨµÀʹÄÜ
        NVIC_Init(&NVIC_InitStructure);                                                                                                                                //¸ù¾ÝNVIC_InitStructÖÐÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèNVIC¼Ä´æÆ÷
       
        USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);                                                                        //½ÓÊÕÖжÏʹÄÜ
}


。。。。。。。。。。。。。。。。。。。。
int main(void)
{              
          
        //SystemInit(); //ϵͳʱÖÓÅäÖú¯Êý£¬Í¨¹ý²»Í¬µÄʱÖÓ¶¨Ò壬À´Ñ¡Ôñ²»Í¬µÄÖ÷Ƶ         
        led_init();  
                uart1_init(9600);
  while(1)
        {
                        USART_SendData(USART1,0X55);
                        led_turn;
                        delay_ms(250);
                                                       
  }
                                                       
                                 
                
                     
}

请高手给看看,谢谢!
沙发
JY-DX-JY|  楼主 | 2015-5-20 21:52 | 只看该作者
这个虚拟串口是不是要用USB驱动的?我估计搞错了。

使用特权

评论回复
板凳
mmuuss586| | 2015-5-20 21:57 | 只看该作者
虚拟串口,不能和普通串口一样初始化;
初始化USB;

使用特权

评论回复
地板
JY-DX-JY|  楼主 | 2015-5-20 22:01 | 只看该作者
奥,谢谢!

使用特权

评论回复
5
lkl0305| | 2015-5-20 23:10 | 只看该作者
楼主,STM32F070Nucleo板子上的USB串口使用的是片内外设的串口2(usart2),你对usart1初始化,肯定是没办法收发数据的。

使用特权

评论回复
6
周董| | 2015-5-21 09:52 | 只看该作者
这是个虚拟串口的问题。学习了。。。。

使用特权

评论回复
7
mark0668| | 2015-5-21 21:28 | 只看该作者
STM32F070Nucleo  虚拟串口已经焊接了,PA2,PA3连好的了,直接初始化串口2就可以收发了,也不需要用杜邦线连接,直接用。

使用特权

评论回复
8
1044135341| | 2016-7-21 16:02 | 只看该作者
你的程序能分享一下吗?谢谢了  

使用特权

评论回复
9
JY-DX-JY|  楼主 | 2024-9-14 12:55 | 只看该作者
不好意思,早找不到了

使用特权

评论回复
10
probedog| | 2024-9-14 15:40 | 只看该作者
硬件连接或者是驱动程序的问题

使用特权

评论回复
11
laocuo1142| | 2024-9-14 15:41 | 只看该作者
查看固件库和HAL库与你的STM32F070是否兼容

使用特权

评论回复
12
flycamelaaa| | 2024-9-14 15:41 | 只看该作者
如果有条件,可以使用逻辑分析仪或示波器来观察USART引脚的信号波形,检查是否有信号发送和接收。

使用特权

评论回复
13
classroom| | 2024-9-14 15:42 | 只看该作者
串口配置问题吧

使用特权

评论回复
14
泡椒风爪| | 2024-9-20 23:05 | 只看该作者
在main循环中,使用USART_SendData发送数据,但没有确认数据发送是否成功。建议可以使用USART_GetFlagStatus检查发送完成标志

使用特权

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

本版积分规则

个人签名:晴天响霹雳,平地一声雷。

245

主题

3351

帖子

30

粉丝