高通平台 通过GPIO来唤醒深度休眠的模块?

如何用GPIO来唤醒深度休眠的模块,9607 哪位大神搞过。

weixin_45120658
小白白不是狗 朋友 整出来了吗 分享一下可以吗
2 个月之前 回复
weixin_40041622
FBIIIII 啊啊啊
9 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
合泰串口配置过程中出现的问题
在写好的配置函数中,用LED1(PA14)和LED2(PA15)进行测试 如果函数正常,则两灯熄灭 static void USARTx_Config() { /*USART初始化 *波特率:115200 *字节长度:8位 *停止位:1位 *校验位:无 *模式:正常模式 **/ USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WORDLENGTH_8B; USART_InitStructure.USART_StopBits = USART_STOPBITS_1; USART_InitStructure.USART_Parity = USART_PARITY_NO; USART_InitStructure.USART_Mode = USART_MODE_NORMAL; GPIO_SetOutBits(HT_GPIOC,GPIO_PIN_14); //PC14引脚置高,LED1熄灭 USART_Init(HT_USART0 , &USART_InitStructure); GPIO_SetOutBits(HT_GPIOC,GPIO_PIN_15); //PC15引脚置高,LED2熄灭 /* 设置USART中断标志 */ USART_IntConfig(HT_USART0 ,USART_INT_RXDR ,ENABLE); /* 使能USART接收、发送 */ USART_TxCmd(HT_USART0 ,ENABLE); USART_RxCmd(HT_USART0 ,ENABLE); /* 中断初始化 */ NVIC_EnableIRQ(USART0_IRQn); } 然而现象为LED1熄灭,而LED2依然亮起 显然程序卡死在 “USART_Init” 函数中 这个函数是官方库给的 void USART_Init(HT_USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_USART_BAUDRATE(USART_InitStruct->USART_BaudRate)); Assert_Param(IS_USART_WORD_LENGTH(USART_InitStruct->USART_WordLength)); Assert_Param(IS_USART_STOPBITS(USART_InitStruct->USART_StopBits)); Assert_Param(IS_USART_PARITY(USART_InitStruct->USART_Parity)); Assert_Param(IS_USART_MODE(USART_InitStruct->USART_Mode)); USARTx->CR = (USARTx->CR & CR_CLEAR_Mask) | USART_InitStruct->USART_StopBits | USART_InitStruct->USART_WordLength | USART_InitStruct->USART_Parity | USART_InitStruct->USART_Mode; #if (!LIBCFG_NO_USART0) if (USARTx == HT_USART0) USARTx->DLR = CKCU_GetPeripFrequency(CKCU_PCLK_USART0) / (u32)USART_InitStruct->USART_BaudRate; #endif #if (LIBCFG_USART1) if (USARTx == HT_USART1) USARTx->DLR = CKCU_GetPeripFrequency(CKCU_PCLK_USART1) / (u32)USART_InitStruct->USART_BaudRate; #endif if (USARTx == HT_UART0) USARTx->DLR = CKCU_GetPeripFrequency(CKCU_PCLK_UART0) / (u32)USART_InitStruct->USART_BaudRate; #if (LIBCFG_UART1) if (USARTx == HT_UART1) USARTx->DLR = CKCU_GetPeripFrequency(CKCU_PCLK_UART1) / (u32)USART_InitStruct->USART_BaudRate; #endif #if (LIBCFG_UART2) if (USARTx == HT_UART2) USARTx->DLR = CKCU_GetPeripFrequency(CKCU_PCLK_UART2) / (u32)USART_InitStruct->USART_BaudRate; #endif #if (LIBCFG_UART3) if (USARTx == HT_UART3) USARTx->DLR = CKCU_GetPeripFrequency(CKCU_PCLK_UART3) / (u32)USART_InitStruct->USART_BaudRate; #endif } 现在搞不清楚程序为何会卡死在这里
arm单片机w7500p如何使用gpio,通过按键来控制gpio,然后通过串口送出去。
按键按下去gpio为1,然后把gpio的数据1通过串口发送出去,然后在串口调试助手中显示1。 一下是我的代码我觉得逻辑没有问题,求大神指点 ![图片说明](https://img-ask.csdn.net/upload/201909/02/1567417444_117961.png) #include <stdio.h> #include "W7500x_uart.h" #include "W7500x_gpio.h" #include "W7500X_crg.h" #include "print_x.h"__ #include "key.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ GPIO_InitTypeDef GPIO_InitDef; UART_InitTypeDef UART_InitStructure; /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ void delay_ms(__IO uint32_t nCount); /** * @brief Main program * @param None * @retval None */ /* GPIO LED(B) Set */ int main() { unsigned char s='1'; uint8_t i; uint16_t num; char str[10]=""; /*System clock configuration*/ SystemInit(); // *(volatile uint32_t *)(0x41001014) = 0x0060100; //clock setting 48MHz /* CLK OUT Set */ PAD_AFConfig(PAD_PA,GPIO_Pin_12, PAD_AF1); // PAD Config - CLKOUT used 3nd Function /* UART0 and UART1 configuration*/ UART_StructInit(&UART_InitStructure); /* Configure UART0 */ UART_Init(UART1,&UART_InitStructure); UART_ITConfig(UART1,UART_IT_FLAG_RXI,ENABLE); S_UART_Init(115200); //S_UART_SetBaud(115200); KEY_Init(); /* Retarget functions for GNU Tools for ARM Embedded Processors*/ GPIO_InitDef.GPIO_Pin = GPIO_Pin_12; // Set to Pin_5 (LED(B)) GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT; // Set to Mode Output GPIO_Init(GPIOC, &GPIO_InitDef); PAD_AFConfig(PAD_PC,GPIO_Pin_12, PAD_AF1); // PAD Config - LED used 2nd Function // GPIO_SetBits(GPIOC, GPIO_Pin_12); // LED(B) Off while(1) { if(KEY_Csan() == 0) i++; if(i%2 == 0) { GPIO_SetBits(GPIOC, GPIO_Pin_12); num=GPIO_ReadOutputData(GPIOC); UART_SendData(UART1,num); //S_UART_SendData(num); str[0]=num+48; prt_str(str); } else { GPIO_ResetBits(GPIOC, GPIO_Pin_12); num=GPIO_ReadOutputData(GPIOC); UART_SendData(UART1,num); //UART_SendData(num); str[0]=num+48; prt_str(str); } } /* for(;;) { S_UART_SendData(s); printf("UART 1 Test(#1)\r\n"); prt_str("\r\11\r\n"); } // UartPuts(UART1,"UART 1 Test(#1)\r\n"); */ } void delay_ms(__IO uint32_t nCount) { volatile uint32_t delay = nCount * 2500; // approximate loops per ms at 24 MHz, Debug config for(; delay != 0; delay--) __NOP(); } ``` ```
高通9563+9880方案,怎么通过9563控制9880的gpio口进行点灯?
主控9563上的gpio口通过mach文件里直接注册对应gpio口,会生成相应的设备文件。直接操作设备文件即可点灯。 现在由于9563上的GPIO口不够用,一部分移到9880上,因为9880也有很多GPIO口可操作,现在怎么采用和9563的相同方式去操作9880上的GPIO口呢?查了很多资料没有相关的介绍。
菜鸡求教,stm32f103的板子,做两路pwm输出,结果有一路没反应。
本菜鸡想用stm32103的板子控制两路舵机,就干脆直接在pwm程序上改了。我查了一下TIM3通道2的复用口的PB5,我就加一个通道1的复用口的PB4。 ![图片说明](https://img-ask.csdn.net/upload/201912/23/1577092428_313723.png) **但结果是原来的PB5口好用得很,但新加的PB4口毛用没有。求大神帮我解答,万分感谢!** ``` void TIM3_PWM_Init(u16 arr,u16 psc) { //定义变量 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; //IO口配置 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //使能PA4、PA5 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4|GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); //定时器通用配置 TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //通道1配置 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //通道2配置 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); TIM_Cmd(TIM3, ENABLE); } int main(void) { u16 led0pwmval=0; u8 dir=1; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); LED_Init(); TIM3_PWM_Init(20000-1,72-1); while(1) { TIM_SetCompare2(TIM3,20000-500); TIM_SetCompare1(TIM3,20000-500); delay_ms(1000); TIM_SetCompare2(TIM3,20000-550); TIM_SetCompare1(TIM3,20000-550); delay_ms(1000); } } ```
友善之臂tiny4412ADK 1312开发板通过gpio口控制外接led灯问题
![图片说明](https://img-ask.csdn.net/upload/201612/04/1480820785_233204.jpg)最近自己在用友善的tiny4412ADK 1312开发板,目的是想通过gpio口来控制外接led灯。目前自己可以实现资料上所给的GPIO_LED_Demo程序例子,点亮核心板上的led1~4灯,但对于外接led灯这个过程不是太了解,以及如何通过gpio口控制外接led灯?希望有这方面经验的前辈给我点建议,谢谢!
怎样设置 SLG46824 GPIO 口 高低电平 救急 在线等
比如 怎样设置 SLG46824 芯片 GPIO 1 位高电平或者低电平 ? 还有 SLG46824 各个 GPIO 口 寄存器的 位值代表什么意思? 官方 datasheet 里面并没有 这一块的说明。 有没有大神做过这一块的?在线等 谢谢 下面是官方网址: https://www.dialog-semiconductor.com/products/slg46824
STM32F072的GPIO口的高低电平不受控制
GPIO口高低电平不受控制,下面是一段测试代码。无法把PF0、PF1、PC0、PC1、PC2拉低。MCU是STM32F072RBT6。基于STM32F0xx_StdPeriph_Lib_V1.5.0库。问题出在哪,请大家帮忙一下。 ``` void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOA, ENABLE);//使能GPIOA时钟 RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOC, ENABLE);//使能GPIOC时钟 RCC_AHBPeriphResetCmd(RCC_AHBPeriph_GPIOF, ENABLE);//使能GPIOF时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;//LED0和LED1对应IO口 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIO GPIO_SetBits(GPIOF,GPIO_Pin_0 | GPIO_Pin_1);//GPIOF0,F1设置高,灯灭 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_ResetBits(GPIOA,GPIO_Pin_15); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1|GPIO_Pin_2;//LED0和LED1对应IO口 GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化GPIO GPIO_SetBits(GPIOC,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); } ```
tiny6410开发板的针座跟gpio怎么对应,红外模块怎么接线
想在tiny6410板上添加个红外反射传感模块,用于感应启动摄像头。我的红外模块有三根线,VCC,GND ,OUT ,可我不知道红外模块的out输出线怎么接在开发板上,接在哪个引脚,那个引脚对应的GPIO是GPA、GPB 、C。。。。? 下面是我的开发板,还有红外模块 我是嵌入式小白,求大神指教!急急急 ![![图片说明](https://img-ask.csdn.net/upload/201608/03/1470205595_724803.jpg)图片说明](https://img-ask.csdn.net/upload/201608/03/1470205578_796398.jpg)
友善之臂mini2440 运行uart裸板程序失败
用的板子是友善之臂mini2440,自己学习韦东山的一期视频,在写uart裸板程序时发现怎么都无法实现功能 s3c2440.h ``` /* GPIO寄存器 */ #define GPBCON (*(volatile unsigned int*)0x56000010) #define GPGCON (*(volatile unsigned int*)0x56000060) #define GPHCON (*(volatile unsigned int*)0x56000070) #define GPBDAT (*(volatile unsigned int*)0x56000014) #define GPGDAT (*(volatile unsigned int*)0x56000064) #define GPHUP (*(volatile unsigned int*)0x56000078) /* UART寄存器 */ #define UCON0 (*(volatile unsigned int*)0x50000004) #define UBRDIV0 (*(volatile unsigned int*)0x50000004) #define ULCON0 (*(volatile unsigned int*)0x50000028) #define UTRSTAT0 (*(volatile unsigned int*)0x50000010) #define UTXH0 (*(volatile unsigned char*)0x50000020) #define URXH0 (*(volatile unsigned char*)0x50000024) #define UFCON0 (*(volatile unsigned int*)0x50000008) #define UMCON0 (*(volatile unsigned int*)0x5000000C) #define UCON1 (*(volatile unsigned int*)0x50004004) #define UBRDIV1 (*(volatile unsigned int*)0x50004028) #define ULCON1 (*(volatile unsigned int*)0x50004000) #define UTRSTAT1 (*(volatile unsigned int*)0x50004010) #define UTXH1 (*(volatile unsigned char*)0x50004020) #define URXH1 (*(volatile unsigned char*)0x50004024) #define UFCON1 (*(volatile unsigned int*)0x50004008) #define UMCON1 (*(volatile unsigned int*)0x5000400C) ``` uart.h ``` #ifndef _UART_H #define _UART_H void uart0_init(); int putchar(int c); int getchar(void); int puts(const char *s); #endif ``` uart.c ``` #include "s3c2440.h" /* 设置引脚用于串口 */ void uart0_init() { GPHCON &= ~((3<<8)|(3<<10)); //清空GPH2,GPH3 GPHCON |= ((2<<8)|(2<<10)); //GPH4,GPH5用于TXD1,RXD1 GPHUP &= ~((1<<4)|(1<<5)); //使能内部上拉 UFCON0 = 0x00; //不使用FIFO UMCON0 = 0x00; //不使用流控 ULCON0 = 0x00000003; //设置数据格式8n1:8位数据位,无校验位,1停止位 UCON0 = 0x00000005; //PCLK,中断/查询模式 UBRDIV0 = 26; //设置波特率 115200 } int putchar(int c) { while(!(UTRSTAT0) & (1<<2)) UTXH0 = (unsigned char)c; } int getchar(void) { while(!(UTRSTAT0) & (1<<0)) return URXH0; } int puts(const char *s) { while(*s) { putchar(*s); s++; } } ``` main.c ``` #include "s3c2440.h" #include "uart.h" int main(void) { unsigned char c; uart0_init(); puts("hello,world!\n"); while(1) { c = getchar(); putchar(c); } return 0; } ``` start.S ``` .text .global _start _start: /*设置内存:sp 栈*/ ldr sp,=4096 /*nand启动*/ /* 关闭看门狗 */ ldr r0, =0x53000000 ldr r1, =0 str r1, [r0] /* 设置CPU工作于异步模式 */ mrc p15,0,r0,c1,c0,0 orr r0,r0,#0xc0000000 //R1_nF:OR:R1_iA mcr p15,0,r0,c1,c0,0 /* 设置MPLL,FCLK */ /* CLKDIVN(0x4c000014) = 0x5 */ ldr r0, =0x4c000014 ldr r1, =0x5 /* HCLK = FCLK/4 = 100 MHz , PCLK = HCLK/2 = 50MHz */ str r1, [r0] /* 设置MPLLCON(0x4c000004) = (92<<12)|(1<<4)|(1<<0) FCLK = 400 MHz*/ ldr r0, =0x4c000004 ldr r1, =(92<<12)|(1<<4)|(1<<0) str r1,[r0] /*调用main*/ bl main halt: b halt ``` Makefile ``` all: arm-linux-gcc -c -o uart.o uart.c arm-linux-gcc -c -o main.o main.c arm-linux-gcc -c -o start.o start.S arm-linux-ld -Ttext 0 start.o uart.o main.o -o uart.elf arm-linux-objcopy -O binary -S uart.elf uart.bin arm-linux-objdump -D uart.elf > uart.dis clean: rm *.bin *.o *.elf *.dis ``` 程序写完后扔到虚拟机里编译生成.bin文件,之后用友善之臂自己编写的下载工具进行烧写 ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578379644_335442.png) 之后选择nand启动,连接串口,并没有看到返回字符串hello,world! 特来请教
device_create函数无法创建/dev/设备文件
gpio_driver_class = class_create(THIS_MODULE, "firstgpio"); gpio_driver_device = device_create(gpio_driver_class, NULL, MKDEV(major, 0), NULL, "first_gpio"); ``` ```两个函数都可以执行成功, 第一句执行后会在/sys/class/下建立对应的类, 第二局device_create不能在/dev下创建设备文件。 通过mdev -s,可以在/dev/下创建设备文件,但是卸载的时候设备文件名是无法卸载的,但是驱动模块已经卸载成功了, 请问这是啥情况?有大神指导一下吗?
GPIO信号输入FPGA的引脚
用的是Virtex4 XC4VFX20芯片,在技术文档里所支持的信号中没有GPIO, 请问GPIO信号可以直接从引脚输入吗,有什么注意事项?非常感谢。
sr501没有办法拉高电平
手在前面晃,只能输出低电平,无法拉高IO #include "stm32f4xx.h" #include "led.h" #include "delay.h" //#include "beep.h" #include "usart.h" int main(void) { delay_init(156); uart_init(115200); // beep_Init(); LED_Init(); while(1) { if(L_XHG==1) { LED=0; printf("true\r\n"); } if(L_XHG==0) { LED=1; printf("error"); delay_ms(100); } } } #include "led.h" #include "stm32f4xx.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_Initstrtype; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); GPIO_Initstrtype.GPIO_Mode=GPIO_Mode_OUT; GPIO_Initstrtype.GPIO_OType=GPIO_OType_PP; GPIO_Initstrtype.GPIO_Pin=GPIO_Pin_9; GPIO_Initstrtype.GPIO_PuPd=GPIO_PuPd_UP; GPIO_Initstrtype.GPIO_Speed=GPIO_Speed_100MHz; GPIO_Init(GPIOF,&GPIO_Initstrtype); GPIO_Initstrtype.GPIO_Mode=GPIO_Mode_IN; GPIO_Initstrtype.GPIO_Pin=GPIO_Pin_0; GPIO_Initstrtype.GPIO_PuPd=GPIO_PuPd_DOWN; GPIO_Initstrtype.GPIO_Speed=GPIO_Speed_100MHz; GPIO_Init(GPIOA,&GPIO_Initstrtype); } #ifndef __LED_H #define __LED_H #define L_XHG PAin(0) #define LED PFout(9) void LED_Init(void); #endif
STM32GPIO配置的问题??
GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO宏操作结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOB,ENABLE); //外设时钟配置, 开启GPIOB和GPIOD的时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); //配置GPIOB口 请问STM32的GPIO端口配置,最后一条语句,如果我想同时配置GPIOA和GPIOB,能这么写吗?为什么?谢谢 GPIO_Init(GPIOA | GPIOB, &GPIO_InitStructure); //配置GPIOB口
怎么控制步进机的角度的转动大小 求大牛
#include "reg51.h" #define uint unsigned int #define uchar unsigned char //电机IO #define GPIO_MOTOR P1 unsigned char code FFW[8]={0xf4,0xf5,0xf1,0xf9,0xf8,0xfa,0xf2,0xf6}; //管脚 unsigned char Direction=0,Speed=0; unsigned char receiveData='0'; void UsartConfiguration(); void Delay(unsigned int t); void Motor(); /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main(void) { //unsigned char i; UsartConfiguration(); Speed=180; //默认初始速度 数字越小 延时时间越短 速度越快 while(1) { if(receiveData=='1') //转动 { //消除抖动 Direction=1; receiveData='0'; } Motor(); Direction=0; } } void UsartConfiguration() { SCON=0X50; //设置为工作方式1 //TMOD=0X20; //设置计数器工作方式2 TMOD=0X21; //设置计数器工作方式2 和定时器0 PCON=0X80; //波特率加倍 //TH1=0XF4; //计数器初始值设置,注意波特率是4800的 //TL1=0XF4; TH1=0XFA; //计数器初始值设置,注意波特率是9600的 TL1=0XFA; ES=1; //打开接收中断 EA=1; //打开总中断 TR1=1; //打开计数器 } void Usart() interrupt 4 { receiveData=SBUF;//出去接收到的数据 RI = 0;//清除接收中断标志位 } /******************************************************************************* * 函 数 名 : Motor * 函数功能 : 电机旋转函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void Motor() { unsigned char i; for(i=0;i<8;i++) { if(Direction==1) { GPIO_MOTOR = FFW[i]; } Delay(Speed); //调节转速 } } /******************************************************************************* * 函 数 名 : Delay * 函数功能 : 延时 * 输 入 : t * 输 出 : 无 *******************************************************************************/ void Delay(unsigned int t) { while(t--) { ; } }
树莓派的WiringPi库找不到
本人使用树莓派3B+,想要实现C++控制高低电平,网上教程很多,但是在配置WiringPi时遇到问题。 已经按照教程实现了WiringPI的安装,在命令行执行gpio -v,和gpio readall都有结果产生,所以我认为库安好了,但是在QT里面引用就说找不到,LIB+= -lwiringPi,报错:cannot find -lwiringPi,include也找不到这个库。请教大家这是什么原因啊??
菜鸡求教,stm32f7做串口通信时,串口复用PA9改成其他口之后就失效了?
本菜鸡在改串口通信小实验的时候,遇到了一个问题。 就是下面这段串口复用程序: ``` GPIO_Initure.Pin=GPIO_PIN_9; GPIO_Initure.Mode=GPIO_MODE_AF_PP; GPIO_Initure.Pull=GPIO_PULLUP; GPIO_Initure.Speed=GPIO_SPEED_FAST; GPIO_Initure.Alternate=GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA,&GPIO_Initure); GPIO_Initure.Pin=GPIO_PIN_10; HAL_GPIO_Init(GPIOA,&GPIO_Initure); ``` 这段程序本菜鸡想把发送口的GPIO_PIN_9改成GPIO_PIN_5,或者GPIO_PIN_5|GPIO_PIN_9,但5口都没有用,不知道为啥,求教!
STM32为什么用串口接收数据不全,时常丢失?
``` ```#include "stm32f10x.h" #include "usart.h" #include "delay.h" void My_USART1_Init(void) { GPIO_InitTypeDef GPIO_InitStrue; USART_InitTypeDef USART_InitStrue; NVIC_InitTypeDef NVIC_InitStrue; //①使能GPIOA和串口1 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //②初始化GPIOA两个引脚 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9; GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStrue); GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING; GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10; GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz; GPIO_Init(GPIOA,&GPIO_InitStrue); //③串口初始化 //波特率 USART_InitStrue.USART_BaudRate=115200; //硬件控制 USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None; USART_InitStrue.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //奇偶验证 USART_InitStrue.USART_Parity=USART_Parity_No; //停止位 USART_InitStrue.USART_StopBits=USART_StopBits_1; //字长 USART_InitStrue.USART_WordLength=USART_WordLength_8b; USART_Init(USART1,&USART_InitStrue); //串口使能 USART_Cmd(USART1,ENABLE);//③ USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启接受中断 USART_ITConfig(USART1,USART_IT_ORE,ENABLE);//开启溢出中断 //初始化中断 NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn; NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1; NVIC_InitStrue.NVIC_IRQChannelSubPriority=1; NVIC_Init(&NVIC_InitStrue); } u8 usart_buf[4][USART_REC_LEN];//接收缓冲,最大USART_REC_LEN个字节 static volatile u16 count=0;//接收状态标记 static volatile int p=0; void USART1_IRQHandler(void) { if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)//开启接收中断 { USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除标志中断位 p = (count / USART_REC_LEN) % 4; usart_buf[p][count % USART_REC_LEN] = USART_ReceiveData(USART1); count++; } } int main(void) { //要使用中断,先要中断分组,一般在主函数的开头 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); My_USART1_Init(); delay_init(); while(1){ if(count > 0){ if(count % 256 == 0){ for(int i = 0; i < 256; i++){ USART_SendData(USART1,usart_buf[p][i]); while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); } printf("\r\n\r\n"); delay_ms(100); } } }; } ![图片说明](https://img-ask.csdn.net/upload/201910/31/1572495626_268037.png)
51单片机 c :的用法
RESET_XUNJI: P6_GPIO_temp = ~HEAD; RESET_XUNJI:请问这里冒号的用法是什么?
使用stm32f1通过串口接收上位机信息产生中断来控制电机,但是中断打不开,想请大佬看看是为什么?
主要思路是在串口通信助手中发送“1”,然后串口接收中断打开,在串口通信助手中打印“中断开始”的信息。但是这句“中断开始”信息没有显示,想请大佬看看shi'wei'shen'm usart.c ``` #include "stm32f10x.h" #include "usart.h" //已检查 无误 static void NVIC_Config(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn ; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_Init(&NVIC_InitStructure); } //串口初始化函数已检查 无误 void USART1_Init(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; //看io口和usart的时钟 //RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA,ENABLE); 函数用错了 //RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //初始化串口USART1输入输出的io口 //输出 推挽复用输出 PA9 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //初始化PA9 GPIO_Init( GPIOA , &GPIO_InitStructure ); //输出 浮空输入 PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //初始化PA10 GPIO_Init( GPIOA , &GPIO_InitStructure ); //初始化串口 USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Parity = USART_Parity_No; USART_Init(USART1,&USART_InitStructure); //串口中断优先级配置 NVIC_Config(); //串口接收中断 因为是接受上位机消息后驱动电机转动,所以使用接受中断 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //串口使能 USART_Cmd( USART1,ENABLE); } /* 使用串口发送一个字节 */ void USART_SendByte(USART_TypeDef* pUSARTx,uint16_t Data) { USART_SendData( pUSARTx, Data); while( USART_GetFlagStatus( pUSARTx,USART_FLAG_TXE) == RESET); } /* 发送字符串(来自野火教程) */ void USART_SendStr( USART_TypeDef* pUSARTx , uint8_t *str) { uint8_t i=0; do { USART_SendByte( pUSARTx, *(str+i)); i++; }while( *(str+i) != '\0' ); while( USART_GetFlagStatus( pUSARTx,USART_FLAG_TC) == RESET); } ///重定向c库函数printf到串口,重定向后可使用printf函数 int fputc(int ch, FILE *f) { /* 发送一个字节数据到串口 */ USART_SendData(USART1, (uint8_t) ch); /* 等待发送完毕 */ while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); return (ch); } ///重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数 int fgetc(FILE *f) { /* 等待串口输入数据 */ while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(USART1); } ``` usart.h ``` #ifndef __USART_H #define __USART_H #include "stm32f10x.h" #include <stdio.h> void USART1_Init(void); void Usart_SendByte(USART_TypeDef* pUSARTx, uint8_t data); void Usart_SendStr(USART_TypeDef* pUSARTx, uint8_t *str); #endif /* __USART_H */ ``` main.c ``` #include "stm32f10x.h" #include "moto.h" #include "usart.h" int main(void) { USART1_Init(); USART_SendStr( USART1 , "000\n"); //USART1_Init(); while(1){} } ``` 中断服务函数 ``` #include "stm32f10x_it.h" #include "usart.h" u8 Start_Flag=1; //电机启动/锁定标志 u16 Pluse_High=10; //脉冲高电平中断次数 1->10us u16 Pluse_Period=200;//脉冲周期中断次数 (转速) //脉冲中断服务函数------------------------------------------------------------ u32 TimeCount=0;//进中断计数 u16 a=0; void SysTick_Handler(void) { } void USART_IT_Handler(void) { //USART_SendStr( USART1 , "test\n"); if(USART_GetITStatus( USART1 ,USART_IT_RXNE)!=RESET) { printf("中断开始\n");//这句信息在串口通信助手中不显示 while(1) { if( USART_ReceiveData(USART1) == 1 ); break; } GPIO_SetBits(GPIOE,GPIO_Pin_5); while(a>1000)//让方向信号的输出略大于脉冲信号 {a++;} DJ_Init(); while(1){TIM4_Int_Init(10-1,84-1);} } } ```
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
java中的Static、final、Static final各种用法
前言 对Static、final、Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从容的回答… static 加载:static在类加载时初始化(加载)完成 含义:Static意为静态的,但凡被static 修饰说明属于类,不属于类的对象。 可修饰:Static 可以修饰 内部类、方...
各大公司在GitHub上开源投入排名分析
基于GitHub的数据进行分析各个公司在开源上的投入排名
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
python学习方法总结(内附python全套学习资料)
不要再问我python好不好学了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的教学下独立完成python游戏,植物大战僵尸简单版,如果要肯花时间,接下来的网络开发也不是问题,人工智能也可以学个调包也没啥问题。。。。。所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
Spring Boot 开发微信公众号后台
Hello 各位小伙伴,松哥今天要和大家聊一个有意思的话题,就是使用 Spring Boot 开发微信公众号后台。 很多小伙伴可能注意到松哥的个人网站(http://www.javaboy.org)前一阵子上线了一个公众号内回复口令解锁网站文章的功能,还有之前就有的公众号内回复口令获取超 2TB 免费视频教程的功能(免费视频教程),这两个都是松哥基于 Spring Boot 来做的,最近松哥打算通...
兼职程序员一般可以从什么平台接私活?
这个问题我进行了系统性的总结,以下将进行言简意赅的说明和渠道提供,希望对各位小猿/小媛们有帮助~ 根据我们的经验,程序员兼职主要分为三种:兼职职位众包、项目整包和自由职业者驻场。 所谓的兼职职位众包,指的是需求方这边有自有工程师配合,只需要某个职位的工程师开发某个模块的项目。比如开发一个 app,后端接口有人开发,但是缺少 iOS 前端开发工程师,那么他们就会发布一个职位招聘前端,来配合公司一...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
C++知识点 —— 整合(持续更新中)
本文记录自己在自学C++过程中不同于C的一些知识点,适合于有C语言基础的同学阅读。如果纰漏,欢迎回复指正 目录 第一部分 基础知识 一、HelloWorld与命名空间 二、引用和引用参数 2.1引用的定义 2.2 将引用用作函数参数 2.3 将引用用于类对象 2.4 引用和继承 2.5 何时使用引用参数 2.6 引用和指针的区别 三、内联函数 四、默认参数的...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
js知识点汇总
1.本门课的作用(JavaScript的作用)所有基于Web的程序开发基础 2.一种计算机客户端脚本语言,主要在Web浏览器解释执行。 3.浏览器中Javascript,用于与用户交互,以及实现页面中各种动态特效 4.在HTML文件中,任何JavaScript代码必须放到&lt;script&gt;标签中 5.把JavaScript代码放到外部文件中,在HTML代码中直接引入该文件(外部文...
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
Python实例大全(基于Python3.7.4)
博客说明: 这是自己写的有关python语言的一篇综合博客。 只作为知识广度和编程技巧学习,不过于追究学习深度,点到即止、会用即可。 主要是基础语句,如三大控制语句(顺序、分支、循环),随机数的生成,数据类型的区分和使用; 也会涉及常用的算法和数据结构,以及面试题相关经验; 主体部分是针对python的数据挖掘和数据分析,主要先攻爬虫方向:正则表达式匹配,常用数据清洗办法,scrapy及其他爬虫框架,数据存储方式及其实现; 最后还会粗略涉及人工智能领域,玩转大数据与云计算、进行相关的预测和分析。
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
论文读不懂怎么办?
王树义读完需要18分钟速读仅需6分钟悄悄告诉你几个窍门。1 痛苦做科研,不能不读论文。但是,我见过不少研究生,论文都读得愁眉苦脸的。这其中,自然有因为拖延的关系。例如教授布置了2周后讨论论文,你原本可以每天抽出时间,慢慢消化。可你非得拖到截止日期的前一天晚上才打开看,希望毕其功于一役……这显然是态度问题。但是,不可忽略的,有些同学,却真的不是态度问题,而是方法不当。他们喜欢跟论文死磕。读不懂,...
用Python解决数据结构与算法问题(三):线性数据结构之栈
python学习之路 - 从入门到精通到大师 文章目录[python学习之路 - 从入门到精通到大师](https://blog.csdn.net/TeFuirnever/article/details/90017382)〇、写在前面3.1.目标3.2.什么是线性数据结构3.3.什么是栈3.4.栈的抽象数据类型3.5.Python实现栈3.6.简单括号匹配3.7.符号匹配3.8.十进制转换成二进制...
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
Java面试官最爱问的volatile关键字
在Java的面试当中,面试官最爱问的就是volatile关键字相关的问题。经过多次面试之后,你是否思考过,为什么他们那么爱问volatile关键字相关的问题?而对于你,如果作为面试官,是否也会考虑采用volatile关键字作为切入点呢? 为什么爱问volatile关键字 爱问volatile关键字的面试官,大多数情况下都是有一定功底的,因为volatile作为切入点,往底层走可以切入Java内存模...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
【C++100问】深入理解理解顶层const和底层const
专栏C++学习笔记 声明 1)该文章整理自网上的大牛和相关专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为...
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
《C++ Primer》学习笔记(五):循环、分支、跳转和异常处理语句
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第5章 - 语句 文章目录专栏C++学习笔记语句1、...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问