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

裕顺网站建设快看看小程序入口

裕顺网站建设,快看看小程序入口,中企动力企业邮箱怎么样,网页设计六安模板前言 前几篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程#xff0c;下载了 uC-OS2 V2.93 的源码#xff0c;并把 uC-OS2 的源文件加入 Keil MDK5 工程#xff0c;通过适配 Systick 系统定时器与 PendSV 实现任务调度#xff0c;初步让 uC-OS2 …前言 前几篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程下载了 uC-OS2 V2.93 的源码并把 uC-OS2 的源文件加入 Keil MDK5 工程通过适配 Systick 系统定时器与 PendSV 实现任务调度初步让 uC-OS2 运行起来 本篇适配 uC-OS2 的 串口驱动实现 类似于 printf 的打印功能让 uC-OS2 有串口运行信息 开发环境 win10 64位 Keil uVision5MDK V5.36 uC-OS2 V2.93 开发板NUCLEO-L476RG MCU 为 STM32L476RG STM32CubeMX 6.9.1用于生成 STM32的裸机工程 串口驱动 通过 STM32CubeMX已经配置了串口的驱动默认串口的波特率是 115200 bps不过没有串口输出的接口需要自己完善一下 新建 uart.c驱动如下 #include uart2.h #include stdio.h #include stdarg.h #include string.h #include stm32l4xx_hal.hstatic UART_HandleTypeDef huart2;#define DBG_BUFF_MAX_LEN 256 static char rt_log_buf[DBG_BUFF_MAX_LEN] { 0 };void uart2_put(const char *fmt) {HAL_UART_Transmit(huart2, (uint8_t *)fmt, strlen(fmt), 0xFFFF); }/* debug print */ int os_printf(const char *fmt, ...) {int length;va_list args;va_start(args, fmt);length vsnprintf(rt_log_buf, sizeof(rt_log_buf) - 1, fmt, args);uart2_put(rt_log_buf);return length; }int uart2_init(uint32_t baud_rate) {huart2.Instance USART2;huart2.Init.BaudRate baud_rate;huart2.Init.WordLength UART_WORDLENGTH_8B;huart2.Init.StopBits UART_STOPBITS_1;huart2.Init.Parity UART_PARITY_NONE;huart2.Init.Mode UART_MODE_TX_RX;huart2.Init.HwFlowCtl UART_HWCONTROL_NONE;huart2.Init.OverSampling UART_OVERSAMPLING_16;huart2.Init.OneBitSampling UART_ONE_BIT_SAMPLE_DISABLE;huart2.AdvancedInit.AdvFeatureInit UART_ADVFEATURE_NO_INIT;return HAL_UART_Init(huart2); }说明 这里通过 C 标准库 vsnprintf 实现格式化打印定义一个 全局的 buffer。 新建 uart2.h 头文件 #ifndef __UART2_H__ #define __UART2_H__#include stdint.hint uart2_init(uint32_t baud_rate); int os_printf(const char *fmt, ...);#endifmain 函数调用 首先包含 #include uart2.h然后 初始化串口uart2_init(UART2_BAUD_RATE);然后就可以使用 os_printf 格式化打印了 格式化打印的意思就是可以像 printf 那样把一个数值 打印输出 十进制、十六进制等工程也可以 %s 输出一个字符串 修改后的 main.c 如下 #include main.h #include led.h #include app_cfg.h #include os.h #include uart2.hvoid SystemClock_Config(void); static void MX_GPIO_Init(void);#define UART2_BAUD_RATE 115200 #define MCU_FREQUENCY 80000000#define TASK_LED_PRIO 5 #define TASK_LED_STACK_SIZE 128 static OS_STK task_led_stack[TASK_LED_STACK_SIZE];static void task_led_entry(void *p_arg) {int cnt 0;while (1){led_grn_ctrl(1);OSTimeDly(1000);led_grn_ctrl(0);OSTimeDly(1000);cnt;os_printf(%s : cnt : %d\r\n, __func__, cnt);} }void led_task_init(void) {OSTaskCreate(task_led_entry,(void *)0, task_led_stack[TASK_LED_STACK_SIZE-1], TASK_LED_PRIO); }HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {return HAL_OK; }/*** brief The application entry point.* retval int*/ int main(void) {HAL_Init();SystemClock_Config();MX_GPIO_Init();uart2_init(UART2_BAUD_RATE);os_printf(%s : uC-OS2 Starting...\r\n, __func__);OSInit();led_task_init();OS_CPU_SysTickInitFreq(MCU_FREQUENCY);OSStart();return 0; }串口信息 编译、烧写到开发板查看 串口的信息当前配置的串口波特率是 115200 bps 当前串口打印信息正常 小结 本篇主要在 uC-OS2 上实现 类似于 printf 的串口格式化打印输出功能适配串口驱动 接下来继续研究 uC-OS2 上实现串口的 shell 等功能不断的深入熟悉 uC-OS2 的各个模块
http://www.ihoyoo.com/news/31840.html

相关文章:

  • 国内人做韩国网站一般都卖什么手续江苏网页设计
  • 怎么创建免费网站吗新遵义
  • 贵阳网站开发推荐网站怎么创建内容
  • 东莞网站建设找谁快消品网站建设
  • 福州微信网站wordpress 语言包
  • 普通网站建设的缺陷长尾关键词挖掘工具
  • easyui 网站开发实现大连网站设计九必选仟亿科技
  • 网站推广软件网页传奇手游游戏大全
  • 住房住房和城乡建设部网站首页优秀校园网站建设汇报
  • 珠海网站营销合肥网站开发外包
  • 营销营网站建设固安做网站的公司
  • 玉林市建设局网站青岛做网站电话
  • 网站建设的参考书籍莱芜金点子信息港房产网
  • 长沙网站设计培训学校pythone网站开发
  • 前端学校网站开发视频网站后台添加表格
  • 微信与与网站建设做ppt的网站叫什么名字
  • 建设银行软件官方网站下载dedecms安装
  • 旅游网站建设首选赢旅动力上海闸北城市建设有限公司网站
  • 建设安全协会网站百度口碑
  • 杭州网站制作报价广告片制作
  • 网站开发跟app开发的差别直播网站开发好做么
  • 心理学网站的建设知名营销类网站
  • 服务器租用网站谷歌提交网站入口
  • 机房建设网站临安网站开发
  • 液体硅胶 技术支持 东莞网站建设广东短视频推广效果好
  • 建湖做网站哪家好北京网站推广价格
  • 浙江华纳建设有限公司网站网店设计图片
  • 网站备案主体注销wordpress 漏洞 2014
  • 江夏网站建设太原网站建设制作机构
  • 做质粒图谱的网站静态网页设计作业