cubemx,生成的USB驱动代码,下载到103c8t6上,接上电脑识别不了,有没有人能提供个测试代码
cubemx生成的代码目录, 是否可以支持自定义目录
STM32F103RET6使用cubeMX生成FarFs挂载SD卡,并开启DMA
stm32cubemx 6.18.0 以太网lwip怎么配置
【速览】CubeMX2发布了,目前支持C5系列,支持MDK6
VSCODE编译stm32时一直显示正在配置
都是怎么学习TouchGFX的?
STM32F103 USB虚拟串口,采用的官方库非HAL库文件,过一段时间会断开链接
KEILMDK每次都要手动选Reset and Run吗 不然下载到板子上得重启电源才行 求解答
mmt 工具如何管理NAND和LCDinterface 设备
微信公众号
手机版
<br /> <br />
我看了下基于LL库的代码,根据它的设置的分频值,最终初始化得到TR_CLK不是秒时钟,这会导致问题或误会。
应该说,LL库这个地方有点问题。一般来讲,我们通常设置分频值后得到TR_CLK应该是1s,看来你这里手动配置是必要的。
看着是一个负值
没有关系的。
这个值只是个标志,后续的初始化配置里根据该值进一步得到最终的异步分频值。
没有问题的,放心。
忘记说明了,我生成的是LL库代码。这是生成的源码
不知道评论是不是被吞了,这么久没发出来。我用的是LL库,这是源码
void MX_RTC_Init(void)
{
/* USER CODE BEGIN RTC_Init 0 */
/* USER CODE END RTC_Init 0 */
LL_RTC_InitTypeDef RTC_InitStruct = { 0 };
LL_RTC_TimeTypeDef RTC_TimeStruct = { 0 };
LL_PWR_EnableBkUpAccess();
/* Enable BKP CLK enable for backup registers */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_BKP);
/* Peripheral clock enable */
LL_RCC_EnableRTC();
/* USER CODE BEGIN RTC_Init 1 */
/* USER CODE END RTC_Init 1 */
/** Initialize RTC and set the Time and Date
*/
RTC_InitStruct.AsynchPrescaler = 0xFFFFFFFFU;
LL_RTC_Init(RTC, &RTC_InitStruct);
LL_RTC_SetAsynchPrescaler(RTC, 0xFFFFFFFFU);
/** Initialize RTC and set the Time and Date
*/
RTC_TimeStruct.Hours = 0;
RTC_TimeStruct.Minutes = 0;
RTC_TimeStruct.Seconds = 0;
LL_RTC_TIME_Init(RTC, LL_RTC_FORMAT_BCD, &RTC_TimeStruct);
/* USER CODE BEGIN RTC_Init 2 */
/* USER CODE END RTC_Init 2 */
}
void SystemClock_Config(void)
{
LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
while (LL_FLASH_GetLatency() != LL_FLASH_LATENCY_2)
{
}
LL_RCC_HSE_Enable();
/* Wait till HSE is ready */
while (LL_RCC_HSE_IsReady() != 1)
{
}
LL_PWR_EnableBkUpAccess();
if (LL_RCC_GetRTCClockSource() != LL_RCC_RTC_CLKSOURCE_LSE)
{
LL_RCC_ForceBackupDomainReset();
LL_RCC_ReleaseBackupDomainReset();
}
LL_RCC_LSE_Enable();
/* Wait till LSE is ready */
while (LL_RCC_LSE_IsReady() != 1)
{
}
if (LL_RCC_GetRTCClockSource() != LL_RCC_RTC_CLKSOURCE_LSE)
{
LL_RCC_SetRTCClockSource(LL_RCC_RTC_CLKSOURCE_LSE);
}
LL_RCC_EnableRTC();
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
LL_RCC_PLL_Enable();
/* Wait till PLL is ready */
while (LL_RCC_PLL_IsReady() != 1)
{
}
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
/* Wait till System clock is ready */
while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
{
}
LL_Init1msTick(72000000);
LL_SetSystemCoreClock(72000000);
}
实际上RTC时钟走时也不对,手动修改分频值就能正常走时