电赛训练代码hal库
缘由
因为我在网上发现很多的相关代码的偶联性太大了,所以就有了分享一些独立模块的操作代码的想法。
事不宜迟,我们开始吧。
1.UART 串口通信
对于串口通信,我们通常用来调试代码是否正确,就用串口来调解的。于是,我想分享一个可以快速调节的代码,来帮助各位更好地调试自己的代码,我是用的是uart1,芯片是stm32f103c8t6的,对应的引脚是PB9,PB10。
1.UART 头文件
我是将这些自定义的模块分开包装实现独立模块化,于是我建立一个单独的文件夹(Hardware)来放自己建立的独立模块。
然后我定义的这个模块名字叫”Debug”—-可以按照自己喜欢的方式定义,没有影响。1
2
3
4
5
6
7
8
9
10
void My_Printf(char *p,...); //就是类似于printf
2.UART 源文件
具体的代码实现1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
extern UART_HandleTypeDef huart1;//进行外部声明
//格式化可变变量字符串缓存 这里我们给的缓存大一点好些,防止溢出
char formatBuf[128];
void My_printf(char *p,...)
{
/*格式化数据*/
va_list ap;
va_start(ap,p);
vsprintf(formatBuf,p,ap);
va_end(ap);
HAL_UART_Transmit(&huart1,(uint8_t *)formatBuf,strlen(formatBuf),1);
}
致谢
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MADAO!