1、在board目录下Kconfig文件中增加如下内容

打开CubeMX_Config下的CubeMX_Config.ioc的cubeMx工程

a;使能串口1;

b;使能外部时钟,设置时钟树;

1工程名字必须是CubeMX_Config

下图是新增串口的配置

代码生成后会出现编译不过的情况

解决办法是添加一个 stm32f1xx_hal_conf.h

参看博客 https://blog.csdn.net/u010261063/article/details/103988752

测试代码:

/** Copyright (c) 2006-2018, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date           Author       Notes* 2018-11-06     SummerGift   first version*/#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>/* defined the LED0 pin: PB1 */
#define LED0_PIN    GET_PIN(B, 5)#define SAMPLE_UART_NAME "uart3"
/* ? ? ? ? ? ? ? ? ? ? */
static struct rt_semaphore rx_sem;
static rt_device_t serial;
/* ? ? ? ? ? ? ? ? */
static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
{
/* ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? ? ?, ? ? ? ? ? ? ? ? ? */rt_sem_release(&rx_sem);return RT_EOK;
}
static void serial_thread_entry(void *parameter)
{char ch='a';while (1){/* ? ? ? ? ? ? ? ? ? ? ? ?, ? ? ? ? ? ? ? ? ? ? ? ? ? */while (rt_device_read(serial, -1, &ch, 1) != 1){/* ? ? ? ? ? ? ? ? ?, ? ? ? ? ? ? ? ? ? ? ? ? */rt_sem_take(&rx_sem, RT_WAITING_FOREVER);}/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? */// ch = ch + 1;rt_device_write(serial, 0, &ch, 1);// rt_thread_sleep(100);}
}
static int uart_sample()
{rt_err_t ret = RT_EOK;char uart_name[RT_NAME_MAX] ;char str[] = "hello RT-Thread!\r\n";rt_strncpy(uart_name, SAMPLE_UART_NAME, RT_NAME_MAX);/* ? ? ? ? ? ? ? ? ? ? */serial = rt_device_find(uart_name);if (!serial){rt_kprintf("find %s failed!\n", uart_name);return RT_ERROR;}/* ? ? ? ? ? ? */rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO);/* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? */rt_device_open(serial, RT_DEVICE_FLAG_INT_RX);/* ? ? ? ? ? ? ? ? */rt_device_set_rx_indicate(serial, uart_input);/* ? ? ? ? ? */rt_device_write(serial, 0, str, (sizeof(str) - 1));/* ? ? serial ? ? */rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL,1024, 25, 10);/* ? ? ? ? ? ? ? ? ? */if (thread != RT_NULL){rt_thread_startup(thread);}else{ret = RT_ERROR;}return ret;
}int main(void)
{int count = 1;/* set LED0 pin mode to output */rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);uart_sample();while (count++){rt_pin_write(LED0_PIN, PIN_HIGH);rt_thread_mdelay(500);rt_pin_write(LED0_PIN, PIN_LOW);rt_thread_mdelay(500);}return RT_EOK;
}

后记:

移植模板工程教程  https://github.com/RT-Thread/rt-thread/blob/master/bsp/stm32/docs/STM32%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md

更改cubeMx后导致stm32f1xx_hal_conf.h文件中的宏定义发生变化

RTT 使用menuconfig 和cubeMux 在移植过来的模板工程上增加一个串口2相关推荐

  1. python是开源的它可以被移植到许多平台上对吗_Python程序设计答案

    [其它]编写一个 Python 程序,输出如下图形效果. ++++++++++ + + ++++++++++ 2. 根据输入的百分制成绩,输出其所对应的五级制成绩. 3. 根据输入的身份证号码,输出对 ...

  2. 移植c语言算法到arm上,μCOS-II移植到ARM处理器上的几个要点

    原标题:μCOS-II移植到ARM处理器上的几个要点 本文主要介绍μCOS-II移植到ARM处理器上的几个要点,如下所示: uCOS II在ARM处理器上移植过程中的中断处理 uCOS II是一个源码 ...

  3. 手把手教你移植 tinyriscv 到FPGA上

    我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索和数字IC设计. 关注公众号[集成电路设计教程],获取更多学习资料,并拉你进"IC设计交流群". QQIC设计交流群 群 ...

  4. wxX11移植到arm板上

    [原]移植wxX11到开发板上 2012-5-18阅读467 评论0 最近几天由于工作安排,要将wxX11程序移植到arm开发板上.一连工作了好几天,终于可以在板子上显示出一个"X" ...

  5. 安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【二】

    安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等[一] 前面分享了这篇帖子,很多友友希望更新下新机型的基带替换方法.今天对其中做一些补充说明.由于安卓机型跨版本幅度较大.有的机型从出厂安 ...

  6. ros在arm linux上移植,ROS在Zedboard上的移植

    ROS全称robot operaring system,一般ROS是应用在Ubuntu系统中,本次移植是将ROS移植到Zedboard上的Linaro系统中去. 移植环境 开发板 : Zedboard ...

  7. 【小松教你手游开发】【unity实用技能】unity游戏移植到WindowsPhone8平台上的一些...

    最近在移植u3d的游戏到WindowsPhone8上,WindowsPhone有多蛋疼就不说,移植的过程中还各种问题,稍稍总结一下 1.WindowsPhone账号在电脑上注册不要在手机上.手机上我就 ...

  8. real210移植记录-支持eMMC,增加菜单操作

    本次记录的移植是使该u-boot支持eMMC,开发板为real210最新版的开发板,标配eMMC 8GB flash,之前的移植都是在之前的210硬件上进行的核心板版本为v2,flash为nand 5 ...

  9. 如何移植mysql数据库_如何把本地MySql数据库移植到远程服务器上

    用dedecms做了一个女性网站,是仿爱丽女人网的.为了在本地测试,就要添加分类栏目,为了看首页和列表页面的效果,还得在网上采集大量的各个分类的内容.这样下来几十个栏目每栏目几十条信息,信息一下就是几 ...

最新文章

  1. android 获取短信验证码倒计时
  2. FSD HOOK与SSDT HOOK恢复简单思路
  3. 洛谷 - P1198 - 最大数 - 线段树
  4. C++代码片段(一)萃取函数返回值类型,参数类型,参数个数
  5. arm的LDMFD--4种堆栈方式
  6. mysql 存储过程 sql变量_SQL基础-变量 存储过程和函数
  7. 【Java数据结构与算法】第十章 哈希表和二叉树
  8. 40. HTTP 协议(1)
  9. thinkpad重装系统不引导_不重装系统修改引导方式为UEFI模式
  10. 手机远程控制软件和开源框架
  11. java代码实现分页_Java分页实现(示例代码)
  12. CC2500调试心得
  13. python用户名和密码登录_Python爬虫:账号密码登入扇贝
  14. 一行代码能实现什么丧心病狂的功能?
  15. 实战 | 如何使用微搭低代码实现按条件过滤数据
  16. ElasticSearch技术方案(二)——站内搜索
  17. 2020春季学期哈工大软件构造学习心得四
  18. pythonista是干什么_说一说,我到底是做什么的?
  19. 华为 IPv6与IPv4
  20. 股票代码是什么意思?

热门文章

  1. python字符串最大长度_字符串String的最大长度
  2. 无法解析 uafxcw.lib_吉利DMS系统一周热点问题解析
  3. 10php1c,PHP程序员,进阶选择C还是C++亦或者别语言
  4. 大文件分片上传前端框架_无插件实现大文件分片上传,断点续传
  5. oracle使用nbu的必要,nbu恢复oracle,使用与源备份端不同用户问题解决
  6. python list清理列表中的空元素或特定元素
  7. 解决statsmodels报错ValueError: Pandas data cast to numpy dtype of object.
  8. Gensim加载word2vec模型与简易使用
  9. 删除Dataframe前N行或后N行
  10. java文件上传控件_java实现大文件上传控件