Stm32旧版库函数17——串口只发送数据 (三角波)

#include "stm32f10x_lib.h"
#include "usart.h"
#include "delay.h"
#include "sys_config.h"
#include  <math.h>    //Keil library  


#define   uchar unsigned char
#define   uint unsigned int    


  /*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
** 输    入    : 无
** 输    出    : 无
** 返    回    : 无
********************************************************************************
*/
int main(void)
{
  u8 data[10]={0,50,100,150,200,250,200,150,100,50};
  u8 i=0;
  RCC_Configuration();         //配置RCC
  GPIO_Configuration();         //配置GPIO
  USART1_Configuration();     //配置串口1
  Delayms(10);                 //延时
  while(1)
 {   
    for(i=0;i<10;i++)
    {
      USART1_SendData(data[i]);             
//    USART1_SendData(0X0D);     //换行
//    USART1_SendData(0X0A);     //回车
      Delayms(500);                 //延时    
    }

  }
}

#include "stm32f10x_lib.h"
#include "usart.h"
#include "delay.h"
/*
********************************************************************************
** 函数名称 : USART1_Configuration(void)
** 函数功能 : 串口1初始化
** 输    入    : 无
** 输    出    : 无
** 返    回    : 无
********************************************************************************
*/
void USART1_Configuration(void)
{

USART_InitTypeDef USART_InitStructure;
USART_ClockInitTypeDef  USART_ClockInitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 |RCC_APB2Periph_USART1, ENABLE  );

USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;            // 时钟低电平活动
USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;                // 时钟低电平
USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;                // 时钟第二个边沿进行数据捕获
USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;        // 最后一位数据的时钟脉冲不从SCLK输出
/* Configure the USART1 synchronous paramters */
USART_ClockInit(USART1, &USART_ClockInitStructure);                    // 时钟参数初始化设置
                                                                    
USART_InitStructure.USART_BaudRate =9600;                          // 波特率为:9600
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;          // 发送使能+接收使能
/* Configure USART1 basic and asynchronous paramters */
USART_Init(USART1, &USART_InitStructure);
    
  /* Enable USART1 */
USART_ClearFlag(USART1, USART_IT_RXNE);             //清中断,以免一启用中断后立即产生中断
USART_ITConfig(USART1,USART_IT_RXNE, ENABLE);        //使能USART1中断源
USART_Cmd(USART1, ENABLE);                            //USART1总开关:开启
}


 //************************************************
void  USART1_SendData(unsigned char SendData)
{
USART_SendData(USART1, SendData);
Delayms(1);
}


void Show_data_short(short k)    //显示两个有符号字节
{
  unsigned char a,b,c,d,e;
  if(k<0)
  {
    k=-k;
    USART1_SendData('-');
  }
  else
    USART1_SendData('+');
  e=k%10+0x30;
  d=(unsigned char)(( k/10 )%10)+0x30;
  c=(unsigned char)(( k/100 )%10)+0x30;
  b=(unsigned char)(( k/1000 )%10)+0x30;
  a=k/10000+0x30;
  USART1_SendData(a);
  USART1_SendData(b);
  USART1_SendData(c);
  USART1_SendData(d);
  USART1_SendData(e);
  USART1_SendData(' ');
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HC-SR04超声波测距模块是一种常用的测距传感器,可以通过发送超声波脉冲并接收回波信号来测量距离。在STM32库函数版中,可以通过以下步骤来使用HC-SR04超声波测距模块: 1. 首先,需要包含"sys.h"头文件,并初始化HC_SR04超声波模块,可以使用HC_SR04_Init()函数进行初始化。\[1\] 2. 在测距之前,需要向Trig控制端输入至少10us的高电平触发信号,可以使用HC_SR04_start()函数发送20us的脉冲触发信号。\[1\] 3. HC-SR04模块内部会发送8个40KHz的方波并检测回波信号,一旦检测到回波信号,Echo接收端会输出高电平回响信号,高电平的持续时间就是超声波从发射到返回的时间。根据公式:距离=高电平时间*声速(340M/S)/2,可以计算出测得的距离。\[2\] 总结来说,使用STM32库函数版的HC-SR04超声波测距模块,需要初始化模块并发送触发信号,然后根据回响信号的高电平时间计算出距离。 #### 引用[.reference_title] - *1* *2* [STM32——库函数版——超声波测距模块](https://blog.csdn.net/qq_45844792/article/details/111215858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32连接HC-SR04超声波测距(结合STM32CubeMX和HAL库函数)](https://blog.csdn.net/wuwenbin12/article/details/118575989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengyuzhe13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值