最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

關(guān)于stm32cubeMX與Clion使用時(shí)的移植操作

2023-03-13 13:01 作者:從小就叫小天才  | 我要投稿

1.使用Clion時(shí)需要添加相關(guān)的配置

使用的時(shí)候需要添加插件:

1.首先是cmake使用cmake作為編譯管理器

2.是使用openOCD,該文件的作用是使其實(shí)現(xiàn)stm32的板子的管理使用

3.cfg文件,因?yàn)樵撐募窍螺d到板子上的時(shí)候需要使用的下載調(diào)用配置文件

下圖是一個(gè)使用st_link的為stm32l4系列板子使用的.cfg文件

# choose st-link/j-link/dap-link etc.

#adapter driver cmsis-dap

#transport select swd

source [find interface/stlink.cfg]

transport select hla_swd

#source [find target/stm32f1x.cfg]

source [find target/stm32L4x.cfg]

# download speed = 10MHz

adapter speed 10000

2.關(guān)于clion軟件開(kāi)發(fā)stm32時(shí)的文件移植問(wèn)題

文件移植時(shí)主要是要注意在cmakelist.txt文件中添加相關(guān)配置的問(wèn)題

添加目標(biāo)文件夾


首先找到include_directories()然后選擇直接在后面添加文件夾的名字

然后是到這個(gè)file中添加文件夾里面的文件比如說(shuō)這里是key文件夾下的所有文件

添加目標(biāo)文件夾下的文件


3.移植時(shí)報(bào)錯(cuò)的問(wèn)題

1.添加之后如果出現(xiàn)一些問(wèn)題比如說(shuō)和cubeMX的引腳配置有些沖突的話可以選擇在key.h的文件的引腳配中注釋掉或者選擇使用static,在函數(shù)的前面加上static可以實(shí)現(xiàn)同名函數(shù)在編譯中不報(bào)錯(cuò)。

2.如果出現(xiàn)一些一些在keli中不報(bào)錯(cuò)而在clion中報(bào)錯(cuò)的關(guān)鍵字,比如u8可以使用ctrl+F和ctrl+R進(jìn)行替換u8替換為char(或者使用uin8_t)

3.當(dāng)然我個(gè)人更加建議不要移植stm32的sys.h文件你可以自己編寫一個(gè)sys.h文件使用typedef進(jìn)行重新定義

//

// Created by hello on 2023-03-02.

//


#ifndef DGL_SYS_H

#define DGL_SYS_H


typedef char u8;

typedef short u16;

typedef int u32;


#endif //DGL_SYS_H

使用該代碼的那么在移植的時(shí)候就可以輕松實(shí)現(xiàn)移植不再需要對(duì)變量進(jìn)行更改


4.關(guān)于串口發(fā)送的printf重寫的方法

使用Clion的時(shí)候創(chuàng)建stm32項(xiàng)目的時(shí)候不可避免的是會(huì)遇到使用串口Usart的問(wèn)題如果一味的使用HAL_UART_Transmit()函數(shù)的話顯得很不方便那么解決辦法是什么呢??

方法是重寫printf函數(shù)代碼如下:

#ifdef __GNUC__
?/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf
? ? set to 'Yes') calls __io_putchar() */
?#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
?#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
/**
?* @brief ?Retargets the C library printf function to the USART.
?* @param ?None
?* @retval None
?*/
PUTCHAR_PROTOTYPE
{
?/* Place your implementation of fputc here */
?/* e.g. write a character to the EVAL_COM1 and Loop until the end of transmission */
?HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

?return ch;
}

但是考慮到每次都需要重寫這該如何是好?當(dāng)然是模板啦??!

打開(kāi)設(shè)置->編輯器->實(shí)時(shí)模板->C/C++->點(diǎn)擊旁邊的+號(hào)->下方的縮寫該名字->描述該模板->模板文本(將你的文本粘貼進(jìn)去)->點(diǎn)擊下面的更改勾選C然后點(diǎn)擊應(yīng)用即可。


在更改中勾選C

然后在你的主函數(shù)中使用#include<stdio.h>輸入的定義的縮寫名字就可以實(shí)現(xiàn)對(duì)這個(gè)模板的快速書寫


使用定義的縮寫字
通過(guò)模板直接生成

可以從這些圖中發(fā)現(xiàn)已經(jīng)定義成功燒錄在while(1){}中使用printf();函數(shù)就可以實(shí)現(xiàn)串口輸出了。


關(guān)于stm32cubeMX與Clion使用時(shí)的移植操作的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
正镶白旗| 杭锦后旗| 瑞丽市| 敦煌市| 宁陵县| 保定市| 宣威市| 哈巴河县| 望奎县| 华池县| 汝州市| 宽城| 新营市| 宜川县| 寿阳县| 昆山市| 阳朔县| 天长市| 道真| 台中县| 新干县| 寿阳县| 阿图什市| 彭阳县| 元江| 司法| 文登市| 乌鲁木齐市| 屏南县| 驻马店市| 绩溪县| 清远市| 当雄县| 江陵县| 青浦区| 襄樊市| 旺苍县| 西畴县| 安西县| 沙河市| 湾仔区|