国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
贺州市| 白朗县| 新巴尔虎左旗| 甘泉县| 含山县| 晋宁县| 新竹市| 石嘴山市| 什邡市| 汝城县| 明溪县| 清水河县| 襄城县| 垣曲县| 凤翔县| 通山县| 柳林县| 荔波县| 大田县| 永兴县| 梓潼县| 合作市| 招远市| 门源| 滦平县| 英德市| 鲜城| 荥经县| 北碚区| 巴彦县| 信宜市| 科技| 高安市| 黔西县| 云南省| 新龙县| 昌平区| 南通市| 鄂托克前旗| 盱眙县| 九台市|