OpenEdv-开源电子网

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

串口实验问题

[复制链接]

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-10-31
在线时间
16 小时
发表于 2019-3-21 14:56:53 | 显示全部楼层 |阅读模式
2金钱
原子哥,帮忙看下我程序那里出问题了1、usart串口函数未声明问题
2、用了extern进行全局变量,但是在主函数main.c还提示需要进行变量声明,这是怎么回事


路劲.PNG

path路劲

path路劲

函数未声明

函数未声明

最佳答案

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

路径没有删掉,调用的还是原来的那个usart.h,并不是你重写的那个USART.h
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1826
金钱
1826
注册时间
2017-9-7
在线时间
501 小时
发表于 2019-3-21 14:56:54 | 显示全部楼层
FLAGT 发表于 2019-3-21 16:02
system里面的usart.h已经删了,我是想先把原版写一遍运行,然后自己在改

路径没有删掉,调用的还是原来的那个usart.h,并不是你重写的那个USART.h
回复

使用道具 举报

2

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2019-3-20
在线时间
23 小时
发表于 2019-3-21 15:09:42 | 显示全部楼层
把工程传上来看看
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-10-31
在线时间
16 小时
 楼主| 发表于 2019-3-21 15:14:02 | 显示全部楼层

工程

串口实验.rar

4.73 MB, 下载次数: 15

回复

使用道具 举报

2

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2019-3-20
在线时间
23 小时
发表于 2019-3-21 15:20:56 | 显示全部楼层

下载不了呢
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-10-31
在线时间
16 小时
 楼主| 发表于 2019-3-21 15:25:31 | 显示全部楼层
[mw_shl_code=applescript,true]#include "USART.h"
#include "stm32f10x.h"


void USART1_Init()
{
        GPIO_InitTypeDef GPIO_Initstructure;
        USART_InitTypeDef USART_Initstructure;
        NVIC_InitTypeDef NVIC_Initstructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

        GPIO_Initstructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//′®¿úIOÅäÖã&#172A9/PA10
        GPIO_Initstructure.GPIO_Pin=GPIO_Pin_9;
        GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;

        GPIO_Initstructure.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_Initstructure.GPIO_Pin=GPIO_Pin_10;
        GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;

        GPIO_Init(GPIOA,&GPIO_Initstructure);
       
        USART_Initstructure.USART_BaudRate=9600;//′®¿úÅäÖÃ
        USART_Initstructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
        USART_Initstructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
        USART_Initstructure.USART_Parity=USART_Parity_No;
        USART_Initstructure.USART_StopBits=USART_StopBits_1;
        USART_Initstructure.USART_WordLength=USART_WordLength_8b;

        USART_Init(USART1,&USART_Initstructure);
        USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//ÆôóÃ′®¿ú½óêÕÖD¶Ï
        USART_Cmd(USART1,ENABLE);//ê1Äü′®¿ú
       
       
        NVIC_Initstructure.NVIC_IRQChannel=USART1_IRQn;//ÖD¶ÏóÅÏè¼¶ÅäÖÃ
        NVIC_Initstructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Initstructure.NVIC_IRQChannelPreemptionPriority=1;
        NVIC_Initstructure.NVIC_IRQChannelSubPriority=1;
       
        NVIC_Init(&NVIC_Initstructure);

}

u16 USART1_RX_STA=0;
u16 USART1_BUF[USART1_RX_LEN];

void USART1_IRQHandler()//′®¿úÖD¶Ï·tÎñoˉêy
{
        u16 res=0;
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
{
  res=USART_ReceiveData(USART1);
         if((USART1_RX_STA&0x8000)==0)//ÅD¶Ïμú16λêÇ·ñÎa1£¨Î′½óêÕμ½0xa£¬½óêÕÎ′íê3飩
         {
           if(USART1_RX_STA&0x4000)
                 {
                  if(res!=0x0a)USART1_RX_STA=0;//Î′½óêÕμ½0x0a,Ôò½óêÕêy¾Y′íÎó£¬ÖØD½óêÕ
                         else USART1_RX_STA|=0x8000;//½óêÕíê3é
                 }
                 else
                 {
                  if(res==0x0d)USART1_RX_STA|=0x4000;
                         else
                         {
                          if(USART1_RX_STA!=0x0d)
                                {
                                         USART1_BUF[USART1_RX_STA&0X3FFF]=res ;
                                        USART1_RX_STA++;
                                        if(USART1_RX_STA>(USART1_RX_LEN-1))USART1_RX_STA=0;//½óêÕêy¾Y′íÎó,ÖØD¿aê¼½óêÕ
                                }
         
                         }

                 }
         
         }

}





}





[mw_shl_code=applescript,true]#include "stm32f10x.h"
#include "LED.h"
#include "KEY.h"
#include "USART.h"
#include "sys.h"
#include "delay.h"

int main(void)
{
        u16 res;
        u16 t;
        u16 lens;
        u16 USART1_RX_STA=0;
        LED_Init();
        key_init();
        delay_init();
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        USART1_Init(9600);
        led0=0;
        led1=0;
       
while(1)
{
        if(USART1_RX_STA&0X8000)
        {
         lens=USART1_RX_STA&0x3fff;
                for(t>0;t<lens;t++)
                {
            res=
               
               
                }
       
       
        }

}[/mw_shl_code][/mw_shl_code]
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-10-31
在线时间
16 小时
 楼主| 发表于 2019-3-21 15:26:23 | 显示全部楼层

你看下下面的代码
回复

使用道具 举报

2

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2019-3-20
在线时间
23 小时
发表于 2019-3-21 15:48:22 | 显示全部楼层
FLAGT 发表于 2019-3-21 15:26
你看下下面的代码

USART1_Init()你定义的这个函数是没有入口参数的函数,但是你在主函数里面调用这个函数给了它一个波特率的入口参数,所以错了
回复

使用道具 举报

12

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1826
金钱
1826
注册时间
2017-9-7
在线时间
501 小时
发表于 2019-3-21 15:49:01 | 显示全部楼层
usart的h文件呢,我记得SYSTEM文件夹下也有个usart.h,而且与你在main里面引用的那个USART.h是不区分大小写的,建议把你要添加的HARDWARE的串口外设改个名字,别一味照搬
回复

使用道具 举报

12

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1826
金钱
1826
注册时间
2017-9-7
在线时间
501 小时
发表于 2019-3-21 16:00:35 | 显示全部楼层
亦辰 发表于 2019-3-21 15:49
usart的h文件呢,我记得SYSTEM文件夹下也有个usart.h,而且与你在main里面引用的那个USART.h是不区分大小写 ...

下了工程看了下,原来你只是在工程里移除了SYSTEM下的usart文件,在路径上没有删除,当然会没有定义,你打开你main里面的USART.h头文件,看会不会是你自己写的那个,而且楼上也说了,定义错了,定义的是没有入口参数,但你在主函数里面却有,这不矛盾嘛
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-10-31
在线时间
16 小时
 楼主| 发表于 2019-3-21 16:02:42 | 显示全部楼层
亦辰 发表于 2019-3-21 15:49
usart的h文件呢,我记得SYSTEM文件夹下也有个usart.h,而且与你在main里面引用的那个USART.h是不区分大小写 ...

system里面的usart.h已经删了,我是想先把原版写一遍运行,然后自己在改
回复

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-10-31
在线时间
16 小时
 楼主| 发表于 2019-3-21 16:08:44 | 显示全部楼层
亦辰 发表于 2019-3-21 16:00
下了工程看了下,原来你只是在工程里移除了SYSTEM下的usart文件,在路径上没有删除,当然会没有定义,你 ...

解决了,是你说的路劲没删除。入口参数之前都有放的,后面改了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 03:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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