当前位置: 首页 > news >正文

青岛 网站维护苏州网站外包

青岛 网站维护,苏州网站外包,网络推广网站有哪些,建设视频网站流量STM32标准库移植RT-Thread Nano 哔哩哔哩教程链接#xff1a;STM32F1标准库移植RT_Thread Nano 移植前的准备 stm32标准库的裸机代码#xff08;最好带有点灯和串口#xff09;RT-Thread Nano Pack自己的开发板 移植前的说明 本人是在读学生#xff0c;正在学习阶段STM32F1标准库移植RT_Thread Nano 移植前的准备 stm32标准库的裸机代码最好带有点灯和串口RT-Thread Nano Pack自己的开发板 移植前的说明 本人是在读学生正在学习阶段移植过程中会有疏漏与不足请有缘看到的读者指出且敬请谅解我会积极更改错误之处 移植步骤 一、打开RT-Thread文档中心作为参考: RT-Thread文档中心 二、keil上安装RT-Thread Nano Pack 1.用Keil IDE内安装RT-Thread Nano Pack在线安装 1打开Keil选择Pack Installer 关闭提示窗口 2打开pack选择安装我这里已经安装所以显示Remove 2.用离线安装包安装RT-Thread Nano Pack离线安装 1下载离线包RT-Thread Nano Pack 离线安装包 2离线安装双击下载好的安装包进行安装 表示安装完成 三、添加内核源码 通过以上三个步骤完成勾选以后点击OK就可以完成内核的添加在keil目录结构中就能够看到如下所示的内容表示内核添加成功 四、删除与逻辑冲突的中断相关的函数 1.打开stm32f10x_it.c 找到相关的中断的函数 2.对与逻辑冲突的中断的函数进行注释或删除 3.添加systick的中断函数到board.c中 void SysTick_Handler() {rt_interrupt_enter();rt_tick_increase();rt_interrupt_leave(); }五、删除RT-Thread中的部分代码添加系统的时钟配置 1.注释或删除以下一行代码 #error TODO 1: OS Tick Configuration.2.添加时钟配置 SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);3.board.c中添加需要的头文件 #include stm32f10x.h #include gpio.h #include usart.h #include delay.h通过以上步骤就完成了在STM32标准库上进行RT-Thread Nano版本的移植编译一下0警告0错误 六、创建任务进行验证 1.在工程的user文件夹下新建RT-Thread相关的头文件和源文件并添加到工程中 2.编写user下的RT-Thread的源文件我的是RT_Thread_demo.c 1包含头文件 #include stm32f10x.h #include RT_Thread_demo.h #include rtthread.h #include delay.h #include gpio.h #include usart.h2编写需要用到的宏定义 #define TASK1_PRIO 1 /* 任务优先级 */ #define TASK1_STK_SIZE 128 /* 任务堆栈大小 */ static rt_thread_t Task1_Handler RT_NULL; /* 任务句柄 */ void Task1(void *pvParameters); /* 任务函数 */#define TASK2_PRIO 2 /* 任务优先级 */ #define TASK2_STK_SIZE 128 /* 任务堆栈大小 */ static rt_thread_t Task2_Handler RT_NULL; /* 任务句柄 */ void Task2(void *pvParameters); /* 任务函数 */#define TASK3_PRIO 3 /* 任务优先级 */ #define TASK3_STK_SIZE 128 /* 任务堆栈大小 */ static rt_thread_t Task3_Handler RT_NULL; /* 任务句柄 */ void Task3(void *pvParameters); /* 任务函数 */(3) 通过函数创建任务并在main.c中调用 void RT_Thread_demo(void) {Task1_Handler rt_thread_create(Task1_Handler,Task1,RT_NULL,TASK1_STK_SIZE,TASK1_PRIO,20);rt_thread_startup(Task1_Handler);Task2_Handler rt_thread_create(Task2_Handler,Task2,RT_NULL,TASK2_STK_SIZE,TASK2_PRIO,20);rt_thread_startup(Task2_Handler);Task3_Handler rt_thread_create(Task3_Handler,Task3,RT_NULL,TASK3_STK_SIZE,TASK3_PRIO,20);rt_thread_startup(Task3_Handler); }4 编写任务函数 void Task1(void *parameter) {while(1){LED1_Toggle;//printf(Task1\r\n);USART_SendString(USART1,(unsigned char*)Task1\r\n);rt_thread_mdelay(300);}rt_thread_delay(10); }void Task2(void *parameter) {while(1){LED2_Toggle;//printf(Task2\r\n);USART_SendString(USART1,(unsigned char*)Task2\r\n);rt_thread_mdelay(600); }rt_thread_delay(10); }void Task3(void *parameter) {while(1){LED3_Toggle;//printf(Task3\r\n);USART_SendString(USART1,(unsigned char*)Task3\r\n);rt_thread_mdelay(900); }rt_thread_delay(10); }5 模块初始化 把用到的初始化函数都放在board.c的rt_hw_board_init 中 通过以上步骤已经完成对RT_Thread的移植。接下来调试验证 七、移植rt_kprintf函数 1. 在rtconfig.h中修改部分代码 1定义 RT_USING_CONSOLE 2删除或注释 uart_init 中的部分代码并加入usart的初始化函数board.c中 3删除rt_hw_console_output部分代码并修改 函数修改为 void rt_hw_console_output(const char *str) {rt_enter_critical();while(*str ! \0) {if(*str \n){USART_SendData(RT_kprintf_USARTx,\r);while(USART_GetFlagStatus(RT_kprintf_USARTx, USART_FLAG_TXE) RESET); //等待上一个字节发送完成}USART_SendData(RT_kprintf_USARTx, *str); //发送一个字节while(USART_GetFlagStatus(RT_kprintf_USARTx, USART_FLAG_TXE) RESET); //等待上一个字节发送完成}rt_exit_critical(); }八、finsh组件的移植 1. 添加组件源码 keil的目录结构中会出现如下文件 2. rtconfig.h 中打开 finsh 选项 3. 修改 finsh_port.c 文件 #include rthw.h #include rtconfig.h #include stm32f10x.h #include usart.h#ifndef RT_USING_FINSH #error Please uncomment the line #include finsh_config.h in the rtconfig.h #endif#ifdef RT_USING_FINSHRT_WEAK char rt_hw_console_getchar(void) {int ch -1;//查询方式实现记得将Usart1初始化中的中断接收配置相关代码注释掉/*等待串口1输入数据*/if( USART_GetFlagStatus( RT_kprintf_USARTx, USART_FLAG_RXNE ) ! RESET ){ch ( int )USART_ReceiveData( RT_kprintf_USARTx );USART_ClearFlag( RT_kprintf_USARTx, USART_FLAG_RXNE );}else{if( USART_GetFlagStatus( RT_kprintf_USARTx, USART_FLAG_ORE ) ! RESET ){USART_ClearFlag( RT_kprintf_USARTx, USART_FLAG_ORE );}rt_thread_mdelay( 10 );}return ch; }#endif /* RT_USING_FINSH */ 4. 修改串口的初始化函数 void uart1_init(uint32_t bound) {GPIO_InitTypeDef GPIO_InitStructure; //GPIOUSART_InitTypeDef USART_InitStructure; //USARTNVIC_InitTypeDef NVIC_InitStructure; //NVICRCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Pin GPIO_Pin_9; //USART1_TXGPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA, GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin GPIO_Pin_10; //USART1_RXGPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING; //浮空输入GPIO_Init(GPIOA, GPIO_InitStructure);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority0;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority 0; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; //IRQ通道使能NVIC_Init(NVIC_InitStructure);USART_OverSampling8Cmd(USART1,ENABLE);USART_InitStructure.USART_BaudRate bound;USART_InitStructure.USART_WordLength USART_WordLength_8b;USART_InitStructure.USART_StopBits USART_StopBits_1;USART_InitStructure.USART_Parity USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode USART_Mode_Rx | USART_Mode_Tx; //收发模式USART_Init(USART1, USART_InitStructure); //初始化串口1USART_Cmd(USART1, ENABLE); //使能串口1 }通过以上步骤对RT-Thread Nano版本的移植到此结束希望大家相互学习相互鼓励 九、keil调试验证 详细调试步骤请移步至哔哩哔哩视频教程STM32F1标准库移植RT_Thread Nano 九、烧录到开发板验证 详细步骤请移步至哔哩哔哩视频教程STM32F1标准库移植RT_Thread Nano
http://www.hkea.cn/news/14383555/

相关文章:

  • 做网站采集内容国内做服装趋势的网站
  • 鞍山制作公司网站的公司做网站制作公司
  • 常州制作网站信息旅游网站建站目的
  • 网站建设制作 企业站开发哪家好wordpress开发软件
  • 网站建设入门教程pdf万州做网站
  • 外贸海外网站推广wordpress会员浏览
  • 昆明建设厅网站企业网站建设要
  • 网站开发主框架一般用什么布局郯城县网站建设
  • 简述制作网站的主要流程做刷单网站犯法吗
  • 天津网站设计制作公司建设网站要注意什么
  • 互动网站设计网站界面ui设计
  • 手机网站设计企业平面设计网站排行榜
  • 怎么管理好自己的网站百度推广优化是什么?
  • 站外推广厦门网页
  • 蓬业东莞网站建设技术支持商丘网站制作与设计
  • 郑州网站建设案例最新热点新闻事件素材
  • 专门做茶叶的网站建设电影网站视频素材
  • 广州网站建设规划网页设计与制作 培训
  • 网站目录管理模版企业网站排名怎么优化
  • 旅游网站的设计的前提网站制作系统哪个好
  • 推荐邯郸网站建设网站报备
  • 免费网站建设软件学生怎么做网站
  • 深圳蚂蚁网络网站建设关键词点击排名软件
  • 深圳做网站哪里最好163企业邮箱登录注册入口
  • 用focusky做h5微网站网站推广网站策划
  • 厦门网站制作收费京东商城网上购物app下载
  • 免费网站空间哪个网站可以免费下载电视剧看
  • 专业简历制作网站推荐百度竞价系统
  • 上海房地产网站官网怎么做盗版视频网站
  • ui设计 接单网站wordpress 批量换