OpenEdv-开源电子网

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

us100超声波问题(使用STM32串口2)

[复制链接]

8

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2015-12-23
在线时间
38 小时
发表于 2016-7-10 12:20:33 | 显示全部楼层 |阅读模式
20金钱
[mw_shl_code=c,true]void UART2_Init()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
//        NVIC_InitTypeDef NVIC_InitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART2|
                                                                                                 RCC_APB2Periph_GPIOA, ENABLE);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;       
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        /*NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2 ;//ÇàÕ¼óÅÏè¼¶3
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;                //×óóÅÏè¼¶3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQí¨μàê1Äü
        NVIC_Init(&NVIC_InitStructure);        //¸ù¾YÖ¸¶¨μÄ2Îêy3õê¼»ˉVIC¼Ä′æÆ÷*/
       
        USART_InitStructure.USART_BaudRate = 9600;//′®¿ú2¨ìØÂê[mw_shl_code=c,true]u16 Ultrasonic_Ranging()
{
        u16 temp;
//        u32 range;
        USART_SendData(USART2,0x55);
        PCout(13)=0;
        while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//μè′y·¢Ëí½áêø
       
        while(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)==RESET);
        temp=USART_ReceiveData(USART2);
        temp=temp<<8;
        while(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)==RESET);
        temp|=USART_ReceiveData(USART2);
        return temp;
}[/mw_shl_code]
然后是测距

[mw_shl_code=applescript,true]USART_InitStructure.USART_WordLength = USART_WordLength_8b;//×&#214;3¤&#206;a8&#206;&#187;êy&#190;Y&#184;&#241;ê&#189;
USART_InitStructure.USART_StopBits = USART_StopBits_1;//ò&#187;&#184;&#246;í£&#214;1&#206;&#187;
USART_InitStructure.USART_Parity = USART_Parity_No;//&#206;T&#198;&#230;&#197;&#188;D£&#209;é&#206;&#187;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//&#206;Tó2&#188;têy&#190;Yá÷&#191;&#216;&#214;&#198;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;        //ê&#213;·¢&#196;£ê&#189;
USART_Init(USART2, &USART_InitStructure); //3&#245;ê&#188;&#187;ˉ′&#174;&#191;ú1

//USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//&#191;a&#198;&#244;′&#174;&#191;ú&#189;óêü&#214;D&#182;&#207;
//USART_ITConfig(USART2, USART_IT_TC, ENABLE);
USART_Cmd(USART2, ENABLE); //ê1&#196;ü′&#174;&#191;ú1
}[/mw_shl_code][/mw_shl_code]


主函数

[mw_shl_code=c,true]#include "Ultrasonic.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "LED.h"
extern u16 distance;
void usart1_send_char(u8 c)
{
        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
    USART_SendData(USART1,c);   
}
int main()
{
        u16 range;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        delay_init();
        uart_init(115200);
        Ultrasonic_Init();
        LED_Init();
        while(1)
        {
                range=Ultrasonic_Ranging();
                usart1_send_char(range>>8);
                usart1_send_char(range);
                PCout(13)=!PCout(13);
                delay_ms(500);
        }
}
[/mw_shl_code]




不知道为什么一直卡死在测距函数里,好像串口的发送完成标志位一直都没被标志,请各位帮我看一下,不胜感激!!


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
206
金钱
206
注册时间
2015-12-23
在线时间
38 小时
 楼主| 发表于 2016-7-10 15:49:56 | 显示全部楼层
搞定了,串口2的时钟开错了
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2016-10-26
在线时间
3 小时
发表于 2016-11-13 16:50:41 | 显示全部楼层
请问楼主试过在中断服务函数里面读取模块的返回值么?我弄了好久都不行。。。
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-6-11
在线时间
9 小时
发表于 2019-6-12 17:50:57 | 显示全部楼层
能发一份中断的代码让我参考一下吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 11:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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