OpenEdv-开源电子网

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

F4串口问题

[复制链接]

4

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2017-3-9
在线时间
10 小时
发表于 2017-7-26 09:21:39 | 显示全部楼层 |阅读模式
1金钱
代码如下 用助手接收不到数据,请问啥原因
void usart_init()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1 ,ENABLE);
        RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA ,ENABLE);
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9|GPIO_Pin_10;
        GPIO_InitStructure.GPIO_OType =GPIO_OType_PP;//íÆíìêä3ö
        GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP;//éÏà-
        GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
        USART_InitStructure .USART_BaudRate =9600;
        USART_InitStructure.USART_HardwareFlowControl =USART_HardwareFlowControl_None ;//ûóDó2¼t¿ØÖÆá÷
        USART_InitStructure .USART_Mode =USART_Mode_Rx |USART_Mode_Tx;
        USART_InitStructure .USART_Parity =USART_Parity_No ;//ûóDÆæżD£Ñéλ
        USART_InitStructure.USART_StopBits =USART_StopBits_1;
        USART_InitStructure.USART_WordLength =USART_WordLength_8b ;//êy¾Y3¤¶è8λ
        USART_Init (USART1,&USART_InitStructure);
        USART_Cmd(USART1,ENABLE);//′®¿úê1Äü
}
int main ()
{
        char i;
        usart_init();
        led_init();
       
        for(i=0;i<9;i++)
                {
                        USART_SendData (USART1,i);
               
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);       
                        GPIO_ResetBits(GPIOF,GPIO_Pin_9);
                }
       
}

最佳答案

查看完整内容[请看2#楼]

void usart1_init() { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1 ,ENABLE); RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA ,ENABLE); GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF; GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9|GPIO_Pin_10; GPIO_InitStructure.GPIO_O ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-26
在线时间
1 小时
发表于 2017-7-26 09:21:40 | 显示全部楼层
shadow1 发表于 2017-7-26 09:59
我试了你的程序做了一些改动,可以正常接收

void usart1_init()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1 ,ENABLE);
        RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA ,ENABLE);
       

        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9|GPIO_Pin_10;
        GPIO_InitStructure.GPIO_OType =GPIO_OType_PP;//í&#198;íìê&#228;3&#246;
        GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP;//é&#207;à-
        GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);
        USART_InitStructure .USART_BaudRate =9600;
        USART_InitStructure.USART_HardwareFlowControl =USART_HardwareFlowControl_None ;//&#195;&#187;óDó2&#188;t&#191;&#216;&#214;&#198;á÷
        USART_InitStructure .USART_Mode =USART_Mode_Rx |USART_Mode_Tx;
        USART_InitStructure .USART_Parity =USART_Parity_No ;//&#195;&#187;óD&#198;&#230;&#197;&#188;D?&#209;é&#206;&#187;
        USART_InitStructure.USART_StopBits =USART_StopBits_1;
        USART_InitStructure.USART_WordLength =USART_WordLength_8b ;//êy&#190;Y3¤&#182;è8&#206;&#187;
        USART_Init (USART1,&USART_InitStructure);
        USART_Cmd(USART1,ENABLE);//'&#174;&#191;úê1&#196;ü
}
int main ()
{
              unsigned char a[26]={65,66,67};
        unsigned char i;
                                delay_init(168);
        usart1_init();
       // led_init();
        LED_Init();  
                                while(1)
                                {
        for(i=0;i<3;i++)
                {
                        USART_SendData (USART1,a);
               
                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);        
                       // GPIO_ResetBits(GPIOF,GPIO_Pin_9);
                                                                               LED0=!LED0;   
                }
                                        delay_ms(1000);                       
                                        }
}
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2017-7-26
在线时间
1 小时
发表于 2017-7-26 09:59:30 | 显示全部楼层
我试了你的程序做了一些改动,可以正常接收
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-23 12:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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