drepa
获得 178 次赞
帮助过993人
如题,我们都知道C有两种判断分支关键字,一种是if-else,另一种是switch-case,我这里有个程序是在for循环下面使用switch语句进行判断,同学看了我的程序之后说这个switch和for配合使用的话时间复杂度就变成n的平方了,他说换成if比较好,你们说这个说法对不对呢?应不应该把switch换成if呢?for(i=0;i<n;i++) switch(i) { case 0:...break; case 1:...break; ... case n:...break; }
如题,我们知道STM32的HAL库串口发送的函数是HAL_UART_Transmit(),将这个函数封装到fputc()函数里面,就可以通过microLIB库调用printf函数进行格式化输出,但是这样的话不勾选microLIB就没法使用printf函数了(遇到printf会死机),那请问,有没有能自定义实现格式化输出的函数呢?如下:fun(char *s, ...);
如题,在Keil中可以使用inline关键字进行内联函数的定义,对于内联函数我有疑问:这是C99的库函数吗?在纯C环境中能不能使用?这个函数的实现原理是不是和宏定义#define差不多?
如题,像正点原子、EU、野火那种第三方厂家的STM32板子,通常都不带有像JLINK、STLINK、ULINK那种CMSIS-DAP标准的下载调试器,但是Nucleo、Disco这些ST官方的板子基本都是带的,而GD32、NXP LPC、CYPRESS这些厂家则很多都有板载的下载器(GDLINK、OPENSDA),请问这是为什么呢?如果是想兜售自家开发的下载器,那为什么又会预留20针STLINK接口呢?还是因为版权纠纷的问题呢?还是因为STLINK没开源所以这些第三方厂家拿不到源码呢?
如题,网上有使用单片机两根GPIO驱动1602的例子,据说是利用了电容的记忆效应,可是我看得不太懂,求教一下论坛的大佬,这个电容记忆效应驱动1602的具体原理是怎么样呢?
如题,STM32的FATFS、USB例程的堆栈设置得非常大,通常至少需要0x2000的堆,0x4000的栈,堆栈设置得这么大是给什么变量准备的呢?需要堆更多还是栈更多呢?这两种程序真的可以把如此大的堆栈耗尽吗?