基于stm32做的遥控器源程序(按键和摇杆均有)

2020-08-04来源: 51hei关键字:stm32  遥控器  按键  摇杆

按键的话非常简单,定义一个函数,然后可以直接在主函数里实现,要确认好自己的蓝牙就可以,波特率也要一致才行。


int main(void)

{

delay_init();        

LED_Init();        

Key_Init();        

uart_init(9600);

while(1)

{

keys();        

}

}


摇杆的话,需要用到ADC算法,下面会分享一个ADC搜集数据的程序然后将搜集的数据加以利用就好了。

如下:

void chuli(void )

{

        u16 x;

        u16 y;

                x = Get_Adc_Average(ADC_Channel_1 , 10);

                y = Get_Adc_Average(ADC_Channel_2 , 10);

                if(x>1500&&x<2500&&y>1500&&y<2500 &&KEY0 !=0&&KEY1 !=0&&KEY2 !=0&&KEY3 !=0&&KEY4 !=0)

                        USART_SendData(USART1,'c');

                if(x<2.600684&&x>0.00806&&y<0.00806)

                        USART_SendData(USART1,'a');

                if(x>0.356104&&x<2.600804&&y<2.600684&&y>2.601489)

                        USART_SendData(USART1,'b');

                if(x<0.00806&&y>0.708789&&y<2.601684)

                USART_SendData(USART1,'d');

                if(x>2.599000&&x<2.600684&&y>0.288200&&y<20600684)

        USART_SendData(USART1,'e');

}


注意:每个摇杆的数据都不相同,不要盲目的挪用。


关键字:stm32  遥控器  按键  摇杆 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic505245.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:stm32F407的按键FIFO应用
下一篇:stm32f407驱动步进电机(用限位传感器限制位置)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32输入捕获模式设置并用DMA接收数据
环境:主机:WIN7开发环境:MDK4.72MCU:STM32F103说明:项目中需要进行红外学习,于是采用输入捕获取得电平变化时间.并将数据放在DMA中.这样可以避免频繁中断消耗CPU资源.采用的是PB1脚,对应TIM3的通道4.源代码:/********************************************************************** 接口函数:初始化红外学习模块**********************************************************************/ void inf_infrared_study_init
发表于 2020-09-24
STM32的PWM输入模式设置并用DMA接收数据
环境:主机:WIN7开发环境:MDK4.72MCU:STM32F103说明:项目中需要进行红外学习,如果采用输入捕获的方式,因为定时器只能捕获上升沿或者下降沿,所以只能获得周期,而不能得到具体的红外波的高低电平的时间.所以采用PWM输入的方式进行捕获.采用的是PA8脚,对应TIM1的通道1.源代码:/********************************************************************** 函数**********************************************************************/ 
发表于 2020-09-24
STM32 常用GPIO操作函数记录
STM32读具体GPIOx的某一位是1还是0 1 /** 2   * @brief  Reads the specified input port pin. 3   * @param  GPIOx: where x can be (A..G) to select the GPIO peripheral. 4   * @param  GPIO_Pin:  specifies the port bit to read. 5   *   This
发表于 2020-09-23
STM32中的位带(bit-band)操作
//位带操作,实现51类似的GPIO控制功能//具体实现思想,参考<<CM3权威指南>>第五章(87页~92页).//IO口操作宏定义#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) #define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr)) #define BIT_ADDR(addr, bitnum)   ME
发表于 2020-09-22
stm32时钟设置函数
这里涉及到一个很重要的寄存器,时钟配置寄存器:RCC_CFGR 1 #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) 2 /* #define SYSCLK_FREQ_HSE    HSE_VALUE */ 3  #define SYSCLK_FREQ_24MHz  24000000 4 #else 5 /* #define SYSCLK_FREQ_HSE    HSE_VALUE */ 
发表于 2020-09-22
STM32——时钟系统
一、时钟树       普通的MCU,一般只要配置好GPIO 的寄存器,就可以使用了。STM32为了实现低功耗,设计了非常复杂的时钟系统,必须开启外设时钟才能使用外设资源。        左边开始,从时钟源一步步分配 到外设时钟。        从时钟频率来说,又分为高速时钟和低速时钟,高速时钟是提供给芯片主体的主时钟,而低速时钟只是提供给芯片中的 RTC(实时时钟)及独立看门狗使用。        从芯片角度来说,时钟源分为内部时钟与外部时钟源,内部
发表于 2020-09-22
<font color='red'>STM32</font>——时钟系统
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved