历史上的今天
今天是:2025年08月01日(星期五)
2019年08月01日 | 注意:STM32库函数中未用到的参数也一定要初始化
2019-08-01 来源:eefocus
注意使用STM32库函数时,对于不用的参数,一定要初始化,否则有可能影响到有用的位!
比如我在配置ADC时,精度配置为12位,但输出的一直是8位的,最后发现由于没有初始化ADC_InitStruct.ADC_ExternalTrigConv这个值,这个值是不确定的。库函数中做如下计算
tmpreg |= (uint32_t)(ADC_InitStruct->ADC_Resolution | ((uint32_t)(ADC_InitStruct->ADC_ContinuousConvMode) << 13) |
ADC_InitStruct->ADC_ExternalTrigConvEdge | ADC_InitStruct->ADC_ExternalTrigConv |
ADC_InitStruct->ADC_DataAlign | ADC_InitStruct->ADC_ScanDirection);
/* Write to ADCx CFGR */
ADCx->CFGR1 = tmpreg;
最终该值影响到了CFGR1,又没有开启参数检查功能,因此出现了上述错误!所以在类似使用中,一定要用初始化函数如:ADC_StructInit(ADC_InitTypeDef*ADC_InitStruct);来将定义的结构体的数据初始化。以防未用到的参数将有效的位改写。
史海拾趣
|
从加入安防的那天起,有种如鱼得水的感觉。一转眼几个年头过去了,感受颇深。安防行业跟其他行业一样,职位很多,销售、技术、工程管理、调试、研发(个人一直认为研发不该属于安防,应属于电子或软件),你对哪个有兴趣?如果你选择了销售,那么恭 ...… 查看全部问答> |
|
公司历经三年,耗资3000万始终没有解决问题。我们系统中GPRS wifi 等大功率大电流的模块都是实时工作 在他们工作的时候 系统中模拟电路 始终受到大功率模块的 辐射干扰和传导干扰导致系统无**常工作。 现在我们系统重新架构如上图所示。所有模块 ...… 查看全部问答> |
|
同步连接问题: 请问谁用过串口或以太网实现过ActiveSync连接啊,我的USB从接口有问题了,所以想改用那些串口,但不知道要修改或设置什么参数,请用过的大虾多指教一下,谢了。… 查看全部问答> |
|
单片机的各种应用产品设计中,LCD和触摸屏作为人机交换的界面使其应用越来越广泛,但在实际应用中单片机要去直接控制大尺寸的彩色LCD(5.6寸以上)是比较困难的。我公司推出的智能显示产品正是为了单片机可以直接控制大尺寸LCD和触摸屏而 ...… 查看全部问答> |
|
接上arm板,可以接收到armlinux启动的信息,但是arm却无法接受键盘的信息!再其他电脑测试下,arm正常 就是串口无法接受信息 这是什么问题??会是串口烧掉了么?烧掉了 为什么还可以发送信息?? 需要换串口芯片??… 查看全部问答> |
|
用串口与MCU通信,用57600波特率,8位数据,1位停止位,无校验位。mcu端发送一个数据包号请求命令(共10个字节长度),wince端收到后,解析出包号,把对应包号的数据发送给MCU(共40个字节长度)。mcu端收到数据后继续请求下一包数据 ...… 查看全部问答> |




