SYSTICK Timer
IDE无法直接生成使用HCLK/8作为时钟的SYSTICK
即使在这里配置Cortex System Timer为HCLK/8也无法改变生成出的工程使用的SYSTICK时钟,在调用HAL_Init->HAL_InitTick->HAL_SYSTICK_Config->SysTick_Config(一层一层解析)时,SysTick_Config默认配置为HCLK时钟。
UART & printf()
首先简单介绍下,ST Link v2.1连接上会提供虚拟U盘和虚拟串口功能,STMicroelectronics STLink Virtual COM Port可以连接串口助手当普通串口使用,即烧录、调试和串口打印一根USB线全搞定(STNB!)。 其次,STMIDE中基于HDL库实现printf重定义方法:在IDE生成的usart.c文件中加入如下代码段,但我个人遇到了串口一段时间毫无反应,突然一段时间正常的现象,在修改了延时并重新烧录了几次后神奇的又正常了(所以遇到这个现象不要紧张)。
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
return ch;
}
#endif
|