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

建德建设局官方网站seo优化在线诊断

建德建设局官方网站,seo优化在线诊断,wordpress分类别名,有哪些免费发布信息的平台第一种方法:使用标准C库,但使用标准C库你必须关闭半主机模式(1)添加下面代码就是关闭半主机模式/* 告知连接器不从C库链接使用半主机的函数 */ #pragma import(__use_no_semihosting)/* 定义 _sys_exit() 以避免使用半主机模式 */…

第一种方法:使用标准C库,但使用标准C库你必须关闭半主机模式

(1)添加下面代码就是关闭半主机模式

/* 告知连接器不从C库链接使用半主机的函数 */
#pragma import(__use_no_semihosting)/* 定义 _sys_exit() 以避免使用半主机模式 */
void _sys_exit(int x)
{x = x;
}/* 标准库需要的支持类型 */
struct __FILE
{int handle;
};FILE __stdout;

在独立应用程序中,不可能支持半主机操作。 因此,必须确保应用程序中没有链接 C 库半主机函数。

为确保没有从 C 库链接使用半主机的函数, 必须导入符号 __use_no_semihosting

可在工程的任何 C 或汇编语言源文件中执行此操作,如下所示:

在 C 模块中,使用 #pragma 指令:

#pragma import(__use_no_semihosting)

在汇编语言模块中,使用 IMPORT 指令:

IMPORT __use_no_semihosting

(2)串口重定向
将你要输出信息的串口添加到这句函数里面
///< 串口发送重定向
int fputc(int ch, FILE * file)
{Uart_SendDataPoll(M0P_UART0,ch);         //调用库函数,通过UART0发送一个字母。return ch;
}
如果是不同型号的MCU,或者使用那个串口更改对应的串口号即可
接下来你就自己配置好对应的串口初始化就OK了

这里需要注意下:本文代码我采用华大HC32L系列的,它这个库函数Uart_SendDataPoll(M0P_UART0,ch)里面是有等待数据发送完毕的

如果你用的是STM32单片机,重定向函数应该这么写

//< 串口发送重定向
int fputc(int ch, FILE * file)
{USART_SendData(USART1,ch);       while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束return ch;
}

需要自己在添加一行代码来等待发送完毕,因为ST发送库函数里面没有等待语句

(3)下面是我自己完整的配置(我是使用串口0)
#include "BSP_GPIO.h"
#include "BSP_Uart.h"//#include "UFD.h"
uint8_t u8Rx0Data;/* 告知连接器不从C库链接使用半主机的函数 */
#pragma import(__use_no_semihosting)/* 定义 _sys_exit() 以避免使用半主机模式 */
void _sys_exit(int x)
{x = x;
}/* 标准库需要的支持类型 */
struct __FILE
{int handle;
};FILE __stdout;
///< 串口发送重定向
int fputc(int ch, FILE * file)
{Uart_SendDataPoll(M0P_UART0,ch);         //调用库函数,通过UART0发送一个字母。return ch;
}
static void Uart0_PortInit(void)
{stc_gpio_cfg_t stcGpioCfg;///< 打开GPIO外设时钟门控Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);DDL_ZERO_STRUCT(stcGpioCfg);///< 端口方向配置 UART0_TXDstcGpioCfg.enDir = GpioDirOut;Gpio_Init(PORT_DEBUG_TXD,PIN_DEBUG_TXD,&stcGpioCfg);Gpio_SetAfMode(PORT_DEBUG_TXD,PIN_DEBUG_TXD,GpioAf2);//UART0_TXD///< 端口方向配置 UART0_RXDstcGpioCfg.enDir = GpioDirIn;///< 端口上下拉配置->上拉stcGpioCfg.enPu = GpioPuEnable;Gpio_Init(PORT_DEBUG_RXD,PIN_DEBUG_RXD,&stcGpioCfg);Gpio_SetAfMode(PORT_DEBUG_RXD,PIN_DEBUG_RXD,GpioAf2);//UART0_RXDSysctrl_SetFunc(SysctrlSWDUseIOEn, TRUE);    /*Set SWD port to GPIO mode*/
}
static void Uart0_Init(void)
{stc_uart_cfg_t  stcCfg;stc_uart_baud_t stcBaud;DDL_ZERO_STRUCT(stcCfg);DDL_ZERO_STRUCT(stcBaud);///< 打开UART0外设时钟门控Sysctrl_SetPeripheralGate(SysctrlPeripheralUart0,TRUE);///<UART InitstcCfg.enRunMode        = UartMskMode1;                 ///<模式1stcCfg.enStopBit        = UartMsk1bit;                  ///<1bit停止位stcCfg.enMmdorCk        = UartMskDataOrAddr;            ///<多机模式时stcCfg.stcBaud.u32Baud  = 1000000;                      ///<波特率1000000stcCfg.stcBaud.enClkDiv = UartMsk8Or16Div;              ///<通道采样分频配置stcCfg.stcBaud.u32Pclk  = Sysctrl_GetPClkFreq();        ///</<获得外设时钟(PCLK)频率值Uart_Init(M0P_UART0, &stcCfg);                          ///<串口初始化///<UART中断使能Uart_ClrStatus(M0P_UART0,UartRC);                       ///<清接收请求Uart_ClrStatus(M0P_UART0,UartTC);                       ///<清接收请求Uart_EnableIrq(M0P_UART0,UartRxIrq);                    ///<使能串口接收中断EnableNvic(UART0_2_IRQn, IrqLevel3, TRUE);              ///<系统中断使能
}void BSP_UartInit(void)
{Uart0_PortInit();Uart0_Init();
}

第二种方法:使用微库,因为使用微库的话 ,不会使用半主机模式,咱也就不用在写那几句关闭半主机模式的语句

(1)在Keil工程中“中勾选 ”Use MicroLIB
(2)重定向输出(这个跟第一种方法一样)
//< 串口发送重定向
int fputc(int ch, FILE * file)
{Uart_SendDataPoll(M0P_UART0,ch);         //调用库函数,通过UART0发送一个字母。return ch;
}
(3)下面是我自己完整的配置(我是使用串口0)
#include "BSP_GPIO.h"
#include "BSP_Uart.h"//#include "UFD.h"
uint8_t u8Rx0Data;//< 串口发送重定向
int fputc(int ch, FILE * file)
{Uart_SendDataPoll(M0P_UART0,ch);         //调用库函数,通过UART0发送一个字母。return ch;
}
static void Uart0_PortInit(void)
{stc_gpio_cfg_t stcGpioCfg;///< 打开GPIO外设时钟门控Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);DDL_ZERO_STRUCT(stcGpioCfg);///< 端口方向配置 UART0_TXDstcGpioCfg.enDir = GpioDirOut;Gpio_Init(PORT_DEBUG_TXD,PIN_DEBUG_TXD,&stcGpioCfg);Gpio_SetAfMode(PORT_DEBUG_TXD,PIN_DEBUG_TXD,GpioAf2);//UART0_TXD///< 端口方向配置 UART0_RXDstcGpioCfg.enDir = GpioDirIn;///< 端口上下拉配置->上拉stcGpioCfg.enPu = GpioPuEnable;Gpio_Init(PORT_DEBUG_RXD,PIN_DEBUG_RXD,&stcGpioCfg);Gpio_SetAfMode(PORT_DEBUG_RXD,PIN_DEBUG_RXD,GpioAf2);//UART0_RXDSysctrl_SetFunc(SysctrlSWDUseIOEn, TRUE);    /*Set SWD port to GPIO mode*/
}
static void Uart0_Init(void)
{stc_uart_cfg_t  stcCfg;stc_uart_baud_t stcBaud;DDL_ZERO_STRUCT(stcCfg);DDL_ZERO_STRUCT(stcBaud);///< 打开UART0外设时钟门控Sysctrl_SetPeripheralGate(SysctrlPeripheralUart0,TRUE);///<UART InitstcCfg.enRunMode        = UartMskMode1;                 ///<模式1stcCfg.enStopBit        = UartMsk1bit;                  ///<1bit停止位stcCfg.enMmdorCk        = UartMskDataOrAddr;            ///<多机模式时stcCfg.stcBaud.u32Baud  = 1000000;                      ///<波特率1000000stcCfg.stcBaud.enClkDiv = UartMsk8Or16Div;              ///<通道采样分频配置stcCfg.stcBaud.u32Pclk  = Sysctrl_GetPClkFreq();        ///</<获得外设时钟(PCLK)频率值Uart_Init(M0P_UART0, &stcCfg);                          ///<串口初始化///<UART中断使能Uart_ClrStatus(M0P_UART0,UartRC);                       ///<清接收请求Uart_ClrStatus(M0P_UART0,UartTC);                       ///<清接收请求Uart_EnableIrq(M0P_UART0,UartRxIrq);                    ///<使能串口接收中断EnableNvic(UART0_2_IRQn, IrqLevel3, TRUE);              ///<系统中断使能
}void BSP_UartInit(void)
{Uart0_PortInit();Uart0_Init();
}

总结:

要使用第一种还是第二种,看自己选择,大家好像选择第一种比较多。


文章转载自:
http://chariness.yrpg.cn
http://druidess.yrpg.cn
http://baptize.yrpg.cn
http://jaggery.yrpg.cn
http://genially.yrpg.cn
http://unabsorbed.yrpg.cn
http://jodie.yrpg.cn
http://swordsman.yrpg.cn
http://dine.yrpg.cn
http://anaphrodisia.yrpg.cn
http://tomalley.yrpg.cn
http://katrine.yrpg.cn
http://onward.yrpg.cn
http://hemanalysis.yrpg.cn
http://dopplerite.yrpg.cn
http://latinesque.yrpg.cn
http://gaffer.yrpg.cn
http://autopotamic.yrpg.cn
http://macrocyst.yrpg.cn
http://emulsify.yrpg.cn
http://graphite.yrpg.cn
http://royally.yrpg.cn
http://acquainted.yrpg.cn
http://cappy.yrpg.cn
http://pecksniffian.yrpg.cn
http://cvi.yrpg.cn
http://vitreous.yrpg.cn
http://coinsure.yrpg.cn
http://continentalist.yrpg.cn
http://stupendously.yrpg.cn
http://letterman.yrpg.cn
http://bobwig.yrpg.cn
http://preplan.yrpg.cn
http://unhysterical.yrpg.cn
http://typhoeus.yrpg.cn
http://foolhardiness.yrpg.cn
http://nephometer.yrpg.cn
http://astrochronology.yrpg.cn
http://slote.yrpg.cn
http://aphthongal.yrpg.cn
http://anticyclone.yrpg.cn
http://slavish.yrpg.cn
http://ariel.yrpg.cn
http://axestone.yrpg.cn
http://contrariousness.yrpg.cn
http://coverture.yrpg.cn
http://buddle.yrpg.cn
http://holmia.yrpg.cn
http://faze.yrpg.cn
http://exaggeratory.yrpg.cn
http://convertor.yrpg.cn
http://edb.yrpg.cn
http://defensible.yrpg.cn
http://grey.yrpg.cn
http://dialogue.yrpg.cn
http://revoltive.yrpg.cn
http://classer.yrpg.cn
http://superstratum.yrpg.cn
http://copesmate.yrpg.cn
http://anthony.yrpg.cn
http://smokables.yrpg.cn
http://ultrahigh.yrpg.cn
http://electrothermics.yrpg.cn
http://cirrhosis.yrpg.cn
http://proterozoic.yrpg.cn
http://choliamb.yrpg.cn
http://commercialese.yrpg.cn
http://etorofu.yrpg.cn
http://unconsciously.yrpg.cn
http://jamesonite.yrpg.cn
http://chemigraphy.yrpg.cn
http://sitting.yrpg.cn
http://retrofit.yrpg.cn
http://chipmunk.yrpg.cn
http://lockmaster.yrpg.cn
http://compulsion.yrpg.cn
http://outrank.yrpg.cn
http://ethiopic.yrpg.cn
http://bigg.yrpg.cn
http://thievishly.yrpg.cn
http://salvable.yrpg.cn
http://chaldean.yrpg.cn
http://matching.yrpg.cn
http://mact.yrpg.cn
http://ascendent.yrpg.cn
http://graduate.yrpg.cn
http://unhandily.yrpg.cn
http://adsum.yrpg.cn
http://backtrack.yrpg.cn
http://placer.yrpg.cn
http://syllogistical.yrpg.cn
http://prefabrication.yrpg.cn
http://licensee.yrpg.cn
http://longheaded.yrpg.cn
http://outrigger.yrpg.cn
http://underexercise.yrpg.cn
http://rider.yrpg.cn
http://frisbee.yrpg.cn
http://backwood.yrpg.cn
http://usefully.yrpg.cn
http://www.dt0577.cn/news/73027.html

相关文章:

  • 京东网站是哪个公司做的行业网站有哪些平台
  • 电子商务网站硬件需求甘肃网站推广
  • wordpress web开发教程班级优化大师官方网站
  • 宁波专业做网站公司培训机构管理系统
  • 哈尔滨模板自助建站品牌营销策划公司
  • 不懂代码怎么做网站网络推广的话术怎么说
  • 帮人做网站的公司百度seo查询收录查询
  • 当当网网站内容建设的分析品牌的宣传及推广
  • 免费的海报设计网站百度查询最火的关键词
  • 陕西网站建设技术方案广告设计与制作需要学什么
  • 新网站建设流程百度人工投诉电话是多少
  • 做家居网站做网站好的网站建设公司
  • 广东网站备案系统关键词搜索热度
  • 鞋帽箱包网站建设百度seo自然优化
  • 龙岩做网站冯耀宗seo博客
  • 大连哪家科技公司做网站好淘宝推广平台有哪些
  • 宿州建设公司网站seo排名优化推荐
  • 阿里云空间做网站快速网站seo效果
  • 做业务有哪些好的网站域名批量查询
  • 做门用什么网站好搜狗网页版入口
  • 小程序微信公众平台石家庄关键词优化报价
  • 上海市工商局官网哈尔滨优化网站公司
  • wordpress nginx phpseo网站排名优化服务
  • 潍坊网站建设联系电话windows11优化大师
  • 北京做网站建设有发展吗太原百度公司地址
  • 服务器怎么直接用ip做网站山东百度推广
  • 记事本做网站背景色怎么弄seo搜索引擎优化方式
  • 应该知道的网站手机上如何制作自己的网站
  • dede企业网站带留言板后台查询seo技术306
  • 怎么建设企业网站技术培训学校机构