完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
工程环境:stm32cubeIDE
开发板:STM32 F103 ZET6最小系统 仿真器:st-link V2 cubeIDE 基于eclipse环境,继承了cubemx,使用gcc编译程序 基本配置步骤与keil类似,参考老师视频与官网cubemx移植教程 基本流程与官网移植教程相同,题目要求配置看门狗,所以在cubemx里配置了iwdg;同时配置了E5、B5两个GPIO口,用于控制两个LED灯的闪烁。 生成工程后需要在ld文件内添加如下内容,否则components.c文件内INIT_EXPORT等宏会不起作用。也会导致FinSH控制台无法初始化,从周六开始就在研究RT-Thread,一直无法启动FinSH,多日查询资料后发现如下解决办法。 /* section information for finsh shell */ . = ALIGN(4); __fsymtab_start = .; KEEP(*(FSymTab)) __fsymtab_end = .; . = ALIGN(4); __vsymtab_start = .; KEEP(*(VSymTab)) __vsymtab_end = .; . = ALIGN(4); /* section information for initial. */ . = ALIGN(4); __rt_init_start = .; KEEP(*(SORT(.rti_fn*))) __rt_init_end = .; . = ALIGN(4); 在startup 启动文件内将main改为entry,由于在工程里不能直接更改所以需要打开相应的文件夹,使用记事本更改。 添加输出输入支持,代码与官网教程相同 char rt_hw_console_getchar(void) { int ch = -1; if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE) != RESET) { ch = huart1.Instance->DR & 0xff; } else { if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_ORE) != RESET) { __HAL_UART_CLEAR_OREFLAG(&huart1); } rt_thread_mdelay(10); } return ch; } void rt_hw_console_output(const char *str) { rt_size_t i = 0, size = 0; char a = 'r'; __HAL_UNLOCK(&huart1); size = rt_strlen(str); for (i = 0; i < size; i++) { if (*(str + i) == 'n') { ITM_SendChar(a); HAL_UART_Transmit(&huart1, (uint8_t*) &a, 1, 1); } HAL_UART_Transmit(&huart1, (uint8_t*) (str + i), 1, 1); } } 在board.c 文件内添加原本位于main函数内的初始化函数 main函数内容 void myMain(); int main(void) { MX_IWDG_Init(); rt_kputs("start iwdg"); myMain(); while (1) { HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); rt_thread_mdelay(500); } } myMain.c 文件内容 #include "main.h" #include "rtthread.h" static char iwdg_stack[128]; static struct rt_thread iwdg; void iwdgThread(); void myMain() { rt_thread_init(&iwdg, //线程句柄 "iwdgTd", //线程的名称; iwdgThread, //线程的入口函数 RT_NULL, //线程的入口函数 &iwdg_stack[0], //线程堆栈的起始地址 sizeof(iwdg_stack), //线程栈大小 25, //优先级 50); //时间片大小 rt_thread_startup(&iwdg); } void iwdgThread() { int i = 0; while (1) { HAL_IWDG_Refresh(&hiwdg); rt_kprintf("iwdg:%dn", i++); rt_thread_mdelay(200); } } 运行结果: |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1933浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
726浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
566浏览 3评论
592浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
550浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 09:41 , Processed in 0.775004 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号