stm32的库函数和操作系统有关系吗

请问stm32的库函数和操作系统有关系吗?
还是说stm32的库函数不是基于操作系统的?

6个回答

和系统没啥关系 就跟楼上说的一样他是根据芯片具体的外设来决定的

我认为操作系统是基于STM32芯片的特性所写的,而库函数是为了用户方便调用底层寄存器所写的。

库函数是根据芯片决定。。。不同的芯片库函数不同。。。

库函数是一种底层的驱动,操作系统是操作系统,没什么关系

没有关系,简单一点说函数库就是一条一条的驱动程序

个人感觉库函数比较重要

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问stm32直接操作寄存器怎么建工程啊,和库函数版本一样吗?

请问stm32直接操作寄存器怎么建工程啊,和库函数版本一样吗?求大神指教,本人菜鸟一只

pic16和18系列有没有类似stm32的可供调用的库函数

pic16和18系列有没有类似stm32的可供调用的库函数,是用picc还是xc6作为编译器,如果有库函数下载和使用方法。谢谢帮忙,最近做项目需要用到pic单片机,如果有库函数感觉会简单不少。

STM32 的库函数USART_GetITStatus

本人看到其他人使用STM32中 USART_GetITStatus uint8_t ucTemp; void USART1_IRQHandler(void) { USART_ClearFlag(USART1,USART_FLAG_TC); if (USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { ucTemp = USART_ReceiveData(USART1); } } 为什么把if (USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) 改成 if (USART_GetITStatus(USART1,USART_IT_RXNE)=SET) 编译器报错expression must be a modifiable lvalue 表达式必须是可修改的左值

关于STM32单片机一个库函数问题求解答

什么时候需要调用SYS.H 和STM32f10x.h这两个文件 萌新求解 中文手册如果有 可以告诉我地方我自己去查

stm 32 关于RTC库函数的小问题

1、RTC_WaitForSynchro() 上面这个函数是进行APB1和RTC时钟同步用的,为什么要进行同步呢,具体有什么作用啊,我不同步行不行呢? 2、还有就是 RTC_WaitForLastTask()这个函数在F40X系列的ARM芯片RTC库函数中已经没有了,这个有什么影响吗? 3、最后一个问题是关于预分频系数设置的,这个先后顺序有没有关系的,本人小白,刚接触stm32。

求stm8s103f3p6 使用官方库函数编写的spi一主多从机的代码

实现一个主机stm8s103f3p6和多个从机stm8s103f3p6的通信代码。

系统调用和C语言库函数

最近学习操作系统,有些东西不是很明白。c语言的库函数有些是利用系统调用实现的,有些不是.我就想问下不是利用系统调用的那部分,在执行时硬件是怎么知道的呢?最后语言代码被编译成二进制,执行时仍然是由寄存器硬件什么执行的吧,既然没利用系统调用,alu这些东西是怎么懂这些库函数要求的操作是干嘛的啊?不是说系统调用是软硬件的接口吗?还有系统调用和驱动程序的关系是什么?

初学求讲解例程STM32寄存器版LED闪烁

本人对下图中的代码理解:如果头文件SYSTEM.H没有在关联的文件中定义,那么就定义头文件SYSTEM.H ,画红圈的内容就是写一个头文件SYSTEM.H。 请问我的理解对吗?如不对请讲解,谢谢:) SYSTEM.H是固件库还是作者自己写的? ![图片说明](https://img-ask.csdn.net/upload/201510/09/1444400813_167350.png) 把下图中的例程编译后出现错误:C:\Keil\ARM\Inc\ST\STM32F10x\stm32f10x.h(96): error: #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" #error "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" 这个错误是怎么产生的?如何决呢?谢谢:) ![图片说明](https://img-ask.csdn.net/upload/201510/09/1444402251_596673.jpg)

为什么我包含了stdio.h,也重新定向到了C库函数,但进行stm32和电脑的串口实验中,printf语句还是没有执行?

#include "stm32f10x.h" #include "LED.h" #include "USART.h" #include "stdio.h" void Show_Message(void); char ch; int main(void) { /* 初始化RGB彩灯 */ LED_GPIO_Config(); /* 初始化USART 配置模式为 115200 8-N-1 */ USART_Config(); /* 打印指令输入提示信息 */ Show_Message(); while(1) { char ch; /* 获取字符指令 */ ch=getchar(); printf("接收到字符:%c\n",ch); /* 根据字符指令控制RGB彩灯颜色 */ switch(ch) { case '1': LED_RED; break; case '2': LED_GREEN; break; case '3': LED_BLUE; break; case '4': LED_YELLOW; break; case '5': LED_PURPLE; break; case '6': LED_CYAN; break; case '7': LED_WHITE; break; case '8': LED_RGBOFF; break; default: /* 如果不是指定指令字符,打印提示信息 */ Show_Message(); break; } } } static void Show_Message(void) { printf("\r\n 这是一个通过串口通信指令控制RGB彩灯实验 \n"); printf("使用 USART 参数为:%d 8-N-1 \n",DEBUG_USART_BAUDARATE); printf("开发板接到指令后控制RGB彩灯颜色,指令对应如下:\n"); printf(" 指令 ------ 彩灯颜色 \n"); printf(" 1 ------ 红 \n"); printf(" 2 ------ 绿 \n"); printf(" 3 ------ 蓝 \n"); printf(" 4 ------ 黄 \n"); printf(" 5 ------ 紫 \n"); printf(" 6 ------ 青 \n"); printf(" 7 ------ 白 \n"); printf(" 8 ------ 灭 \n"); } 这是main.c里的。本来是模仿秉火的程序写的,但结果串口发数据可以控制灯的状态,但printf后面的内容却没法在串口助手上显示,后来几乎是把源代码都复制了过来,还是显示不了。源代码就可以在串口助手上显示printf语句内的内容,keil的微库我也勾选了。是不是我的keil哪里还没有设置好?

STM32官方DSP库进行FFT运算的问题

使用STM32官方的DSP库进行FFT运算,然后求每一个频率点的幅值,并把幅值用printf在串口打印出来,问题是我把计算幅值的函数放到main.c文件中,结果是正确的,但把它放到其他文件中,在main函数中调用,结果就不正确了,哪位大神知道问什么? 这是main函数,作用就是计算FFT后每一点的幅值,其中GetPowerMag(FFT_Out_Array, FFT_Mag_Array);函数是在fft.c中定义的,但结果不对,如果拿到main.c中就正确了 #include "config.h" #include "led.h" #include <math.h> #include "fft.h" #define Fs 6400 //采样率 #define PI2 6.28318530717959 long FFT_In_Array[NPT]; long FFT_Out_Array[NPT]; unsigned long FFT_Mag_Array[NPT/2]; void fft_Init(void); int main(void) { u8 i; RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); USART1_Configuration(); //ADC_Configuration(); //DMA_Configuration(); // initLED(); fft_Init(); //FFT运算 cr4_fft_256_stm32(FFT_Out_Array, FFT_In_Array, NPT); //计算幅值 GetPowerMag(FFT_Out_Array, FFT_Mag_Array); //打印每一点的幅值 for(i=0;i<NPT/2;i++) { printf("%d=%ld\n", i, FFT_Mag_Array[i]); } while (1) { } return 0; } //用指定频率的波形,初始化FFT数组 void fft_Init() { unsigned short i; float fx; for(i=0; i<NPT; i++) { fx = 1500 * sin(PI2 * i * 350.0 / Fs) + 2700 * sin(PI2 * i * 8400.0 / Fs) + 4000 * sin(PI2 * i * 18725.0 / Fs); FFT_In_Array[i] = ((signed short)fx) << 16; } } 以下是fft.c--------------------------------------- #include "fft.h" void GetPowerMag(long *pIn, unsigned long *pMag) { signed short lX,lY; float X,Y,Mag; unsigned short i; for(i=0; i<NPT/2; i++) { lX = (pIn[i] << 16) >> 16; lY = (pIn[i] >> 16); X = NPT * ((float)lX) / 32768; Y = NPT * ((float)lY) / 32768; Mag = sqrt(X * X + Y * Y) / NPT; if(i == 0) pMag[i] = (unsigned long)(Mag * 32768); else pMag[i] = (unsigned long)(Mag * 65536); } }

stm32串口发送可以进入中断但没有数据显示

程序功能是:若接收到数据0x55,则发送接收到的数据(0x55)。 但现在问题是:通过串口助手发送0x55,已经进入接收中断接受到数据,然后通过SendData函数发送数据,能进入发送中断,但是串口助手却没有显示0x55(好像是数据并没有发送出去) /*头文件*/ #ifndef __HEAD_H__ #define __HEAD_H__ #include <misc.h> #include <stm32f10x_usart.h> #include <stm32f10x_gpio.h> #include <STM32F10x_rcc.h> #include <stdint.h> #include "stm32f10x_flash.h" //#include <stm32100e_eval.h> //#include <stm32_eval.h> void NVIC_Configuration(void); void RCC_Configuration(void); void Usart_Initial(void); void gpio_Init(void); void Delayms(uint16_t ms); extern uint16_t rece; #endif /*函数*/ #include "head.h" void NVIC_Configuration(void){ //ÖжÏÓÅÏȼ¶ÉèÖà NVIC_InitTypeDef NVIC_InitStruc; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStruc.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStruc.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStruc.NVIC_IRQChannelSubPriority = 0; NVIC_InitStruc.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruc); } void RCC_Configuration(void){ ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(RCC_WaitForHSEStartUp() == SUCCESS) { FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); FLASH_SetLatency(FLASH_Latency_2); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY==RESET)) {} RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource()!=0x08){} } RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE); } void Usart_Initial(void){ USART_InitTypeDef USART_InitStructure; USART_ClockInitTypeDef USART_ClockStructure; USART_InitStructure.USART_BaudRate = 115200; 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_ClockStructure.USART_Clock = USART_Clock_Disable; // USART_ClockStructure.USART_CPHA = USART_CPHA_2Edge; // USART_ClockStructure.USART_CPOL = USART_CPOL_Low; // USART_ClockStructure.USART_LastBit = USART_LastBit_Disable; USART_ClockStructInit(&USART_ClockStructure); USART_Init(USART1,&USART_InitStructure); USART_ClockInit(USART1,&USART_ClockStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); // USART_ITConfig(USART1,USART_IT_TXE,ENABLE); // USART_ITConfig(USART1, USART_IT_RXNE,ENABLE); // USART_WakeUpConfig(USART1, USART_WakeUp_IdleLine); USART_Cmd(USART1,ENABLE); } void gpio_Init(void){ GPIO_InitTypeDef GPIO_InitSTA; GPIO_InitTypeDef GPIO_InitSTB; /* GPIO_PinLockConfig(GPIOB,GPIO_Pin_12);*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitSTA.GPIO_Mode = GPIO_Mode_Out_PP; //TxD1 GPIO_InitSTA.GPIO_Pin = GPIO_Pin_9; GPIO_InitSTA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitSTA); GPIO_InitSTA.GPIO_Mode = GPIO_Mode_IN_FLOATING; //RxD1 GPIO_InitSTA.GPIO_Pin = GPIO_Pin_10; // GPIO_InitSTA.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitSTA); GPIO_InitSTB.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitSTB.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13; GPIO_InitSTB.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitSTB); GPIO_SetBits(GPIOA,GPIO_Pin_9 | GPIO_Pin_10); GPIO_SetBits(GPIOB,GPIO_Pin_12 | GPIO_Pin_13); } void Delayms(uint16_t ms){ uint16_t i = 0; uint16_t j = 0; for(j = 0;j < ms;j ++){ for(i = 0;i < 12000;i ++){ } } } /*主程序,串口usart1中断函数*/ #include "head.h" #include "stdio.h" #include "stm32f10x_it.h" uint16_t rece = 0; int main(void){ NVIC_Configuration(); RCC_Configuration(); Usart_Initial(); gpio_Init(); USART_ITConfig(USART1,USART_IT_TXE,ENABLE); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); GPIO_WriteBit(GPIOB,GPIO_Pin_12 | GPIO_Pin_13,Bit_RESET); while(1){ // GPIO_WriteBit(GPIOB,GPIO_Pin_12 | GPIO_Pin_13,Bit_SET); // Delayms(1000); GPIO_WriteBit(GPIOB,GPIO_Pin_12 | GPIO_Pin_13,Bit_RESET); Delayms(1000); // USART_SendData(USART1,0x55); // Delayms(1000); // while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET){}; } } void USART1_IRQHandler(void) { /* if(USART_GetITStatus(USART1, USART_IT_PE) != RESET) { USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); rece = USART_ReceiveData(USART1); } */ if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) { GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET); //若发送0x55,引脚电平会变 // USART_SendData(USART1, 0xff); // while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET){}; USART_ClearFlag(USART1,USART_FLAG_TC); USART_ITConfig(USART1, USART_IT_TXE, DISABLE); } if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { /* Disable USART1 RXNE Interrupt */ rece = USART_ReceiveData(USART1); USART_ClearFlag(USART1,USART_IT_RXNE); // USART_ITConfig(USART1, USART_IT_RXNE, DISABLE); if(rece == 0x55){ // GPIO_WriteBit(GPIOB,GPIO_Pin_12,Bit_SET); USART_ITConfig(USART1,USART_IT_TXE,ENABLE); USART_SendData(USART1,rece); while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET){}; // printf("hello"); } } }

stm32与FPGA spi通信

求 FPGA的vhdl 程序 和stm32液晶如何显示 fpga的vhdl代码

STM32 串口接收指令无反应。

C#上位机通过串口给STM32发送指令,结果发现发送指令下位机偶尔有反应,大多数情况下没反应,只有多次点击有时会返回一次数据。代码如下 ``` 上位机发送部分 char[] a = new char[1];//设置标志位 a[0] = 'a'; serialPort1.Write(a, 0, 1); ``` STM32处理部分: ``` while(1) { if(USART_GetITStatus(USART1,USART_IT_RXNE)!=Bit_RESET) { UART_data=USART_ReceiveData(USART1);//接收串口数据 if(UART_data=='a')//进行判断 { USART_SendData(USART1,a);//a为之前定义的一个变量 b也是 } if(UART_data=='b') { USART_SendData(USART1,b); } while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); } } ```

STM32多机通讯,安卓板为上位机,下位机为几个STM32串口接收数据(应该是2~10个)

1:STM32多机通讯,安卓板为上位机,下位机为几个STM32串口接收数据(应该是2~10个),请大神指教, 2:要有程序代码提供(最好是有寄存器配置版本的。如是库函数版的请说清楚)

STM32串口2发送AT指令给ESP8266,发现8266只执行了第一条指令,另外两条没有执行

通过USB转TTL以及串口调试助手是可以看到STM32是可以正常发送两条AT指令以及字符串的 ![图片说明](https://img-ask.csdn.net/upload/201904/05/1554431579_466744.png) 但是插上ESP8266后发现8266只执行了“AT+CIPSTART="TCP","192.168.43.35",8080”这条指令,并且成功连接到了PC服务端,但是剩下的没有发送 ![图片说明](https://img-ask.csdn.net/upload/201904/05/1554431693_767376.png) 主函数如下: ``` #include "serial.h" #include "delay.h" int main() { u8 i=0; //AT+CIPSTART="TCP","192.168.43.35",8080 u8 at_cipstart[] = {0x41,0x54,0x2b,0x43,0x49,0x50,0x53,0x54,0x41,0x52,0x54,0x3d,0x22,0x54,0x43,0x50,0x22,0x2c,0x22,0x31,0x39,0x32,0x2e,0x31,0x36,0x38,0x2e,0x34,0x33,0x2e,0x33,0x35,0x22,0x2c,0x38,0x30,0x38,0x30,0x0d,0x0a}; //AT+CIPSEND=15 u8 at_cipsend[] = {0x41,0x54,0x2b,0x43,0x49,0x50,0x53,0x45,0x4e,0x44,0x3d,0x31,0x35,0x0d,0x0a}; //HELLO WORLD! u8 AAA[] = {0x48,0x45,0x4c,0x4c,0x4f,0x20,0x57,0x4f,0x52,0x4c,0x44,0x21,0x0D,0x0A}; serial1_init(115200); serial2_init(115200); delay_init(); USART2->SR; for(i=0;i<40;i++)//40//AT+CIPSTART="TCP","192.168.43.35",8080(»Ø³µ) { USART_SendData(USART2, at_cipstart[i]); while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET); } delay_ms(1000); for(i=0;i<15;i++)//15//AT+CIPSEND=15 { USART_SendData(USART2, at_cipsend[i]); while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET); } delay_ms(1000); for(i=0;i<14;i++)//14//HELLO WORLD!(»Ø³µ) { USART_SendData(USART2, AAA[i]); while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET); } } ```

单片机跑上嵌入式系统ucosii以后,不用考虑顺序执行的问题吗

原来裸机跑的时候,写程序都是按程序执行顺序一步一步来的,加了系统不用了吗?那程序是怎么跑的呢?![图片说明](https://img-ask.csdn.net/upload/201511/19/1447925031_736813.png) 还有这个图中说道裸机的时候要考虑具体物理地址,如果是用stm32的库函数开发不是也不需要考虑的吗?跑上ucos以后是不是也是相当于他们给了一些这样的库函数,我们之间调用不用知道具体操作那些寄存器?

STM32F103CBT6上移植ucos操作系统 仿真后LED任务不运行一直处于空闲任务 是什么原因啊?

主函数 #include "stm32f10x.h" #include "stm32f10x_conf.h" #include "ucos_ii.h" #define TASK_STK_SIZE 64 //定义堆栈长度 OS_STK LED0_TASK_STK[TASK_STK_SIZE]; OS_STK LED1_TASK_STK[TASK_STK_SIZE]; /*定义两个任务的堆栈数组*/ #define ON 0 #define OFF 1 #define LED0(a) if (a) \ GPIO_SetBits(GPIOA,GPIO_Pin_0);\ else \ GPIO_ResetBits(GPIOA,GPIO_Pin_0) #define LED1(a) if (a) \ GPIO_SetBits(GPIOA,GPIO_Pin_1);\ else \ GPIO_ResetBits(GPIOA,GPIO_Pin_1) /*宏定义两个选择函数*/ void GPIO_configuration(void) //配置I/O口 { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /*开启GPIOA的外设时钟*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; /*选择要控制的GPIOA引脚*/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*设置引脚模式为通用推挽输出*/ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /*调用库函数,初始化GPIOA*/ /* 关闭led0灯 */ GPIO_SetBits(GPIOA, GPIO_Pin_0); GPIO_SetBits(GPIOA, GPIO_Pin_1); } void BSP_Init(void) //硬件配置 { GPIO_configuration(); /* GPIO端口初始化 */ } void SysTick_init(void) /* SysTick_init 配置SysTick定时器 */ { SysTick_Config(SystemCoreClock/OS_TICKS_PER_SEC); //初始化并使能SysTick定时器 } void Task_LED0(void *p_arg) { (void)p_arg; // 'p_arg' 并没有用到,防止编译器提示警告 SysTick_init(); //在第一个任务中开启系统时钟 while (1) { LED0( ON ); OSTimeDlyHMSM(0, 0,0,100); LED0( OFF); OSTimeDlyHMSM(0, 0,0,100); } } void Task_LED1(void *p_arg) { (void)p_arg; // 'p_arg' 并没有用到,防止编译器提示警告 while (1) { LED1( ON ); OSTimeDlyHMSM(0, 0,0,500); LED1( OFF); OSTimeDlyHMSM(0, 0,0,500); } } int main(void) { BSP_Init(); OSInit(); OSTaskCreate(Task_LED0,(void *)0, &LED0_TASK_STK[TASK_STK_SIZE-1], 4); OSTaskCreate(Task_LED1,(void *)0, &LED1_TASK_STK[TASK_STK_SIZE-1], 5); OSStart(); return 0; } 仿真后一直在空闲函数中运行 有大神知道是为什么吗

stm32波特率的计算公式

在stm32中如何设置波特率?即波特率是如何计算的?在设置波特率的过程中出现问题,求解答,谢谢!

stm32重定向scanf到串口 这里怎么使用呢?

int fgetc(FILE *f) { while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(USART1); }

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

浪潮集团 往年的软件类 笔试题 比较详细的哦

浪潮集团 往年的软件类 笔试题 比较详细的哦

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

I2c串口通信实现加速度传感器和FPGA的交流

此代码能实现加速度传感器与FPGA之间的交流,从而测出运动物体的加速度。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

eclipseme 1.7.9

eclipse 出了新的eclipseme插件,官方有下载,但特慢,我都下了大半天(可能自己网速差)。有急需要的朋友可以下哦。。。

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

最简单的倍频verilog程序(Quartus II)

一个工程文件 几段简单的代码 一个输入一个输出(50Mhz倍频到100Mhz)

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

基于RSA通信密钥分发的加密通信

基于RSA通信密钥分发的加密通信,采用pycrypto中的RSA、AES模块实现

不同变质程度煤尘爆炸残留气体特征研究

为分析不同变质程度煤尘爆炸残留气体成分的特征规律,利用水平管道煤尘爆炸实验装置进行了贫瘦煤、肥煤、气煤、长焰煤4种不同变质程度的煤尘爆炸实验,研究了不同变质程度煤尘爆炸后气体残留物含量的差异,并对气体

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

jsp+servlet入门项目实例

jsp+servlet实现班级信息管理项目

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

python实现数字水印添加与提取及鲁棒性测试(GUI,基于DCT,含测试图片)

由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主

Xshell6完美破解版,亲测可用

Xshell6破解版,亲测可用,分享给大家。直接解压即可使用

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问