RT-Thread的Keil模拟器STM32F103上手(二、UART)

1.UART参考代码及相应文档:

UART设备 (rt-thread.org)https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/uart/uart_v1/uart2.将“串口接收不定长数据”的代码保存为kernel-sample-0.1.0目录下的uart_data_sample.c文件,打开RT-Thread Keil模拟器的project工程,在kernel-sample下Add Exiting Files to Group ‘kernel-sample’,将刚生成的uart_data_sample.c文件添加进去,如图:

若出现中文乱码,按照Edit->Configuration->Editor->Encoding,选择Chinese GB2312(Simplified)设置,重启Keil后重新添加uart_data_sample.c文件。 根据介绍,这是一个串口设备接收不定长数据的示例代码,程序功能是通过串口uart2输出字符串"hello RT-Thread!",并通过串口uart2输入一串字符(不定长),再通过数据解析后,使用控制台显示有效数据。

3.Rebuild完成后,依次Debug->Start/Stop Debug Session,Debug->Run,View->Serial Windows->UART #1,运行uart_data_sample,提示程序执行失败,如下:

这说明找不到UART2,打开drv_usart.c文件,可见与UART2相关的代码为灰色,显然UART2不起作用。

 实际上设备配置文件为rtconfig.h,添加代码define RT_USING_UART2则可打开UART2,如下:

 重新编译并Debug,打开UART #1和UART #2观察窗口,运行uart_data_sample,效果如下:

 在UART #2随便输入几个字符,例如123456,回车,回到UART #1后,会看到输出data=123456。

4.很多UART例子功能是将输入的字符+1输出(错位输出),在本例中只需将data[i++] = ch改为data[i++] = ch+1即可实现,测试效果如下:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 首先,Keil5是一款非常流行的嵌入式开发工具,主要用于开发和调试ARM架构的微控制器。而ST-Link V2则是一款常用的STM32系列微控制器的烧录和调试工具,可以通过USB接口连接到计算机。 STM32F103C8T6是一款常用的ARM Cortex-M3内核的微控制器,其包含了多个GPIO引脚,其的P13引脚是其的一个。 P13引脚可以通过配置为输出模式来控制连接到该引脚的LED灯的亮灭。为了测试P13引脚连接的LED灯是否正常工作,我们可以使用Keil5和ST-Link V2来编写和烧录一个简单的测试程序。 下面是一个示例的测试程序的代码: ```c #include "stm32f103c8t6.h" void delay(int); int main(void) { RCC->APB2ENR |= (1 << 3); // Enable GPIOB clock GPIOB->CRH &= ~(0x0F << 20); // Clear PIN13 configuration GPIOB->CRH |= (0x03 << 20); // Configure PIN13 as output push-pull while (1) { GPIOB->BSRR = (1 << 13); // Set PIN13 to HIGH delay(500000); // Delay for some time GPIOB->BRR = (1 << 13); // Reset PIN13 to LOW delay(500000); // Delay for some time } } void delay(int count) { for (int i = 0; i < count; i++); } ``` 这个程序,我们首先需要配置P13引脚为输出模式,并将其连接的GPIO口的时钟使能。然后,在一个无限循环,我们通过设置和复位P13引脚来控制LED灯的亮灭,并在设置和复位之间加入了一个延时函数来控制灯的持续时间。 在Keil5,我们可以创建一个新的工程,选择适当的目标设备为STM32F103C8T6,然后将以上代码复制到一个.c文件,并进行编译和烧录。 使用ST-Link V2连接STM32F103C8T6微控制器和计算机,然后在Keil5选择ST-Link V2作为调试工具进行烧录。完成烧录后,可以通过观察P13引脚连接的LED灯的亮灭状态来判断测试程序是否正常工作。 希望对你有帮助! ### 回答2: Keil5是一款被广泛用于嵌入式系统开发的集成开发环境(IDE),而ST-Link V2是一种程序烧录器和调试器,用于与STMicroelectronics的STM32系列微控制器进行通信和调试。而STM32F103C8T6是一个性能强大的STM32系列微控制器,其P13引脚可以用作输出控制。 通过Keil5和ST-Link V2的配合使用,我们可以进行STM32F103C8T6的开发、调试和烧录操作。下面是一个使用P13引脚测试程序的示例: 首先,在Keil5创建一个新的工程,选择合适的芯片型号为STM32F103C8T6。然后编写一个简单的程序,以控制P13引脚的输出状态。 #include "stm32f103c8t6.h" void delay(uint32_t count) { for(uint32_t i=0;i<count;i++); } int main() { RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // 使能C端口时钟 GPIOC->CRH &= ~(0x0F << (4*0)); // 清除P13端口的配置 GPIOC->CRH |= (0x03 << (4*0)); // 设置P13引脚为推挽输出 GPIOC->BRR |= (1 << 13); // 将P13引脚置低,灯熄灭 while(1) { GPIOC->BSRR |= (1 << 13); // 将P13引脚置高,灯亮起 delay(1000000); // 延时一段时间 GPIOC->BRR |= (1 << 13); // 将P13引脚置低,灯熄灭 delay(1000000); // 延时一段时间 } } 在上述程序,我们首先使能了GPIOC端口的时钟,并对P13引脚进行了配置,将其配置为推挽输出模式。然后,在主函数的循环,通过设置和清除P13引脚的电平来实现让灯亮起和熄灭的效果。同时,为了控制灯的亮灭时间,我们使用了一个简单的延时函数。 完成程序编写后,可以使用ST-Link V2将程序烧录到STM32F103C8T6上。连接ST-Link V2与STM32F103C8T6的调试串口,并通过Keil5进行程序的烧录和调试操作。最后,我们可以观察到P13引脚接入的LED灯的亮度变化,达到测试效果。 以上就是使用Keil5、ST-Link V2和STM32F103C8T6进行P13灯测试的简要步骤和示例程序。这种组合可以为嵌入式开发者提供方便的开发和调试环境,帮助他们快速验证和测试硬件功能。 ### 回答3: Keil5和ST-Link V2是嵌入式开发常用的工具,用于开发和调试STM32微控制器。在这个问题,我们将使用Keil5和ST-Link V2开发板来编写一个简单的程序,以控制STM32F103C8T6开发板上的P13灯。 首先,我们需要在Keil5创建一个新的工程,并选择适合的开发板和目标芯片,本例选择的是STM32F103C8T6。 接下来,我们需要编写一个简单的程序来控制P13灯。下面是一个示例程序: ```c #include "stm32f103c8t6.h" void delay(void) { for(int i = 0; i < 500000; i++); // 延时函数 } int main(void) { // 启用GPIOC时钟 RCC->APB2ENR |= RCC_APB2ENR_IOPCEN; // 配置P13引脚为输出模式 GPIOC->CRH &= ~(GPIO_CRH_MODE13_Msk | GPIO_CRH_CNF13_Msk); GPIOC->CRH |= GPIO_CRH_MODE13_0; while(1) { // 设置P13输出高电平 GPIOC->BSRR |= GPIO_BSRR_BS13; // 延时一段时间 delay(); // 设置P13输出低电平 GPIOC->BSRR |= GPIO_BSRR_BR13; // 延时一段时间 delay(); } } ``` 在这个程序,我们首先启用GPIOC端口的时钟。然后,我们配置P13引脚为输出模式。接下来是一个无限循环,在循环我们将P13引脚设置为高电平,然后延时一段时间,接着将P13引脚设置为低电平,再次延时一段时间,不断循环。 最后,我们需要将程序下载到STM32F103C8T6开发板上进行测试。我们可以使用ST-Link V2作为调试器,将程序下载到开发板上。连接ST-Link V2与开发板,并通过Keil5的调试功能进行下载和调试。 当程序下载到开发板上之后,你就会看到P13灯每隔一段时间亮起并熄灭,表示程序正常运行。 总之,通过Keil5和ST-Link V2,我们可以轻松地编写并测试STM32F103C8T6开发板上的P13灯测试程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SDAU2005

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值