驱动
恋雪1986
这个作者很懒,什么都没留下…
展开
-
HAL_PWR_DisableBkUpAccess();影响RTC定时唤醒
设置完RTC定时唤醒后,如果调用了HAL_PWR_DisableBkUpAccess();这个函数会导致RTC无法唤醒;void rtc_wkup_set_time(uint16_t ms){ __HAL_RCC_PWR_CLK_ENABLE(); HAL_PWR_EnableBkUpAccess();//设置RTC唤醒前需要先执行备份区使能,并且保证备份区不会使能,否则低功耗后唤醒不了 HAL_RTCEx_DeactivateWakeUpTimer(&hrtc)...原创 2021-04-30 15:58:06 · 815 阅读 · 2 评论 -
strcmp不起作用的问题解决
最近在调试一个项目,项目中用到了strcmp;但是strcmp在L431上用着起作用,在L451上用着竟然不起作用,同样的代码;过程如下:char HeadStr[6];//全局变量void n_recv_gnss_data_process(char ch){ if(ch == '$') { BeginFlag = 1;//开始标志 } if(BeginFlag >= 1) { BeginFlag++;...原创 2021-04-27 10:49:11 · 1260 阅读 · 0 评论 -
对于MCU看门狗IIWDG WWDG喂狗时间的配置参考
对于MCU看门狗IIWDG WWDG喂狗时间的配置参考可以参考MCU的datasheet;在每个MCU的datasheet中都有这样的表格:6.3.25 Timer characteristicsF091的:可以封装接口进行看门狗的配置,参数传入ms时长:以091为例代码实现如下(看门狗是40KHz):/** * @brief config 内部独立看门狗. * @param ms:看门狗时间长度 * @retval None */uint8_t .原创 2021-04-21 11:14:49 · 982 阅读 · 0 评论 -
w25qxx SPI读取数据出来为全FF
调试L451的spiflash时读取w25qxx的数据,写入后再进入读取,读取出来是全FF,最后找到原因是: hspi2.Init.CLKPolarity = SPI_POLARITY_HIGH;配制成 hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;的原因,改成HIGH后就正常了。void MX_SPI2_Init(void){ hspi2.Instance = SPI2; hspi2.Init.Mode = SPI_MODE_MASTER...原创 2021-04-20 11:09:02 · 8765 阅读 · 4 评论 -
实现printf函数的方法
void n_kprintf(const char *fmt, ...){ va_list va; char tx_buf[256]={0}; uint16_t len; va_start(va, fmt); len = vsnprintf(tx_buf, 256, fmt, va); va_end(va); uart_send_data(UART_3,(uint8_t*)tx_buf,len);//自己实现的uart DMA发送函数,...原创 2021-04-20 09:49:43 · 217 阅读 · 0 评论 -
MCP2515在8M晶振控制器下配置1M波特率的配置
MCP2515在8M晶振控制器下配置1M波特率的配置:CFG1,CFG2,CFG3的配置值为:0x00,0x80,0x00;虽然这样配置可以得出1M波特率来,但是可能会不稳定,因为:原创 2021-04-20 09:15:36 · 1950 阅读 · 0 评论 -
HAL库的HAL_GPIO_ReadPin()使用总结
HAL库readpin的函数使用起来有以下总结:当一个pin脚设置成OUTPUT的时候,那么使用HAL_GPIO_ReadPin()函数能不嫩读取出这个pin脚的值呢???很多人都认为HAL_GPIO_ReadPin()只是用来读取配置为INPUT模式的pin脚的,其实它也可以读取配置为OUTPUT的pin脚状态;但是,这里加个但是,当pin配置output时,想要读取pin的状态时,对于推挽PP和开漏OD模式是有区别的;当配置为GPIO_MODE_OUTPUT_PP时,使用HA...原创 2021-04-08 10:07:06 · 20220 阅读 · 0 评论 -
lis3dh低功耗调试笔记
最近在调试整机的低功耗,发现在单片机进入低功耗后,整体功耗在400多uA, 不带加速度计(我用的是SPI模式)的硬件版本低功耗为100uA. 两个硬件版本除了加速度计的区别,其他硬件电路都相同;于是确定是LIS3DH的低功耗没调试好,查看LIS3DH的数据手册,发现如下的地方:即pin7引脚内部有个上拉电阻,另外找到数据手册上的table13的下面描述可以将此上拉电阻配置为disable;果真,加上这个配置后,低功耗电流降低了140A左右;功耗还是在300多uA,和100uA相差甚远;根据数据手原创 2021-04-06 16:12:06 · 1202 阅读 · 2 评论 -
gpio模拟uart 发送
用GPIO模拟UART输出一个字节,波特率9600,所以周期约为104us。这就需要用的精确的usdelay延时函数;延时函数可以用Cortex-M内核中的DWT计数器。另外还需要将GPIO配置成output模式;延时函数实现如下:delay.h//延时实现#define DWT_CR *(__IO uint32_t *)0xE0001000#define DWT_CYCCNT *(__IO uint32_t *)0xE0001004#define DEM_.原创 2021-04-01 14:43:39 · 1236 阅读 · 0 评论