brick移植hal
虽说,样例代码使用的F401的平台,但换成407后,串口一直打印乱码,不禁怀疑人生的程度,经过一天的调试,依然没有解决。不知道怎么回事。还是自己重新移植一遍吧。偷懒解决不了问题。
调度添加过程
clone 代码,不展开
修改成自已芯片环境,也不展开了
复制user framework driver 到工程目录下
把user 里不需要的stm32f4xx_it.c/.h及 user 下的stm32f4xx_conf.h文件删除。然后将user下内容,整体剪切到src下。同时将其目录下.h文件剪切到inc目录下。记得工程要包含相关的头文件。
往keil工程里,添加farmework driver两个文件夹
往farmeork里加 module.c,
在user里 public.c这个主要是配置一些端口及看门狗,这些都可以由cumbe生成,因此这个可以不用。
实现系统滴答
将systick_increase(SYS_TICK_INTERVAL);
放到stm32f4xx_it.c里的SysTick_Handler()
函数里即可。
至此,基本的调度就完成了。
功能添加过程
blink 添加
往user里添加led.c.hal库改,初始化暂由cumbe生成。灯控制如:red_led_ctrl()要修改成相应硬件上的管脚。
往framework里加blink.c文件;做完这些,可以看见灯已经开机闪三下了。
key 添加
在user/task中添加key_task.c,还是要改成硬件上的管脚
在framework里加key.c.;可以看到短接按键已经可以控制灯了,长按可以看到常亮或常灭了。
添加串口,只添加打印操作,不是添加什么命令控制器
在drive 添加tty.c
在framework.c里添加ringbuffer.c
修改串口写函数为:
void uart_write(uint8_t *buf, unsigned int len)
{
HAL_UART_Transmit(&huart1, buf, len, 0xffff);
}//把相关联的函数指针部分也修改为一样的参数类型
在user/task里添加cli_task.c文件。
在framework里添加cli.c
在user/cmd里添加cmd_devinfo.c
测试,终于可以正常打印了。加上这部分后,可以看到代码量已经超过10K了,对于一般的小项目,完全没有必要,另外就是小内存的单片机也不太适用。
但还是可以当作参考明白操作的流程的。
低功耗管理
理解ospm之看门狗与rtc,关于此部分,应该是最后才加的,否则,程序一会就会进停机模式,造成程序下载不进去。
在framework里添加pm.c
将platform.c替换为platform-lowpower.c
在user/cmd里添加cmd_pm.c
这部分程序本来就是测试通过的,所以不再详述。