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

南京市建设工程交易中心网站it运维多少钱一个月

南京市建设工程交易中心网站,it运维多少钱一个月,吉林网页制作,怎么自定义wordpress登录页面一、串口接收超时中断的实现。 1. rtthread中定义的串口超时结构体 定义串口接收超时的结构体 CM_TMR0_TypeDef 为TM0的实例(实际有CM_TMR0_1 CM_TMR0_2 对应华大460的两个TMR0单元 ) channel 每个timer0有两个通道(TMR0_CHA、TMR0_CHB) clock 为FCG2_PERIPH_TMR0_1、FCG…

一、串口接收超时中断的实现。

 1. rtthread中定义的串口超时结构体

定义串口接收超时的结构体
CM_TMR0_TypeDef       为TM0的实例(实际有CM_TMR0_1 CM_TMR0_2 对应华大460的两个TMR0单元 )

channel 每个timer0有两个通道(TMR0_CHA、TMR0_CHB)

clock 为FCG2_PERIPH_TMR0_1、FCG2_PERIPH_TMR0_2

timeout_bits 为超时的位个数  40表示40bit位传输时间

irq_config 包含 .irq_num  中断IRQ .irq_prio 中断优先级 .int_src 中断源

irq_callback 中断回调指针

/* HC32 config Rx timeout */
struct hc32_uart_rxto
{CM_TMR0_TypeDef             *TMR0_Instance;rt_uint32_t                 channel;rt_uint32_t                 clock;rt_size_t                   timeout_bits;
#if defined (HC32F460) || defined (HC32F4A0)struct hc32_irq_config      irq_config;func_ptr_t                  irq_callback;
#endif
};

eg 如下格式化 

#define UART1_RXTO_CONFIG                                       \{                                                           \.TMR0_Instance = CM_TMR0_1,                             \.channel       = TMR0_CH_A,                             \.clock         = FCG2_PERIPH_TMR0_1,                    \.timeout_bits  = 20UL,                                  \.irq_config    =                                        \{                                                       \.irq_num   = BSP_UART1_RXTO_IRQ_NUM,                \.irq_prio  = BSP_UART1_RXTO_IRQ_PRIO,               \.int_src   = INT_SRC_USART1_RTO,                    \},                                                      \}

 hc32_dma_config中调用hc32_uart_rx_timeout

/* Initialization uart rx timeout for DMA */
hc32_uart_rx_timeout(serial);

hc32_uart_rx_timeout中根据serial的rx_timeout初始化TMR0

     启用TMR0的时钟 (TMR0_1 或TMR0_2)

FCG_TMR0_CLK(uart->config->rx_timeout->clock, ENABLE);

清零CNTR ,    //TMR0_Instance为CM_TMR0_1 或CM_TMR0_2

    /* TIMER0 basetimer function initialize */TMR0_SetCountValue(TMR0_Instance, ch, 0U);

使用外部时钟XTAL32 分频系数1。计算CMPR的值。

 

    TMR0_StructInit(&stcTmr0Init);stcTmr0Init.u32ClockDiv = TMR0_CLK_DIV1;stcTmr0Init.u32ClockSrc = TMR0_CLK_SRC_XTAL32;if (TMR0_CLK_DIV1 == stcTmr0Init.u32ClockDiv){alpha = 7UL;}else if (TMR0_CLK_DIV2 == stcTmr0Init.u32ClockDiv){alpha = 5UL;}else if ((TMR0_CLK_DIV4 == stcTmr0Init.u32ClockDiv) || \(TMR0_CLK_DIV8 == stcTmr0Init.u32ClockDiv) || \(TMR0_CLK_DIV16 == stcTmr0Init.u32ClockDiv)){alpha = 3UL;}else{alpha = 2UL;}/* TMR0_CMPA<B>R calculation formula: CMPA<B>R = (RTB / (2 ^ CKDIVA<B>)) - alpha */ckdiv   = 1UL << (stcTmr0Init.u32ClockDiv >> TMR0_BCONR_CKDIVA_POS);cmp_val = ((rtb + ckdiv - 1UL) / ckdiv) - alpha;DDL_ASSERT(cmp_val <= 0xFFFFUL);stcTmr0Init.u16CompareValue = (uint16_t)(cmp_val);TMR0_Init(TMR0_Instance, ch, &stcTmr0Init);

2.启用USART的 RX_TIMEOUT功能,将为每一字节启动定时功能。

    /* TMR0_CMPA<B>R calculation formula: CMPA<B>R = (RTB / (2 ^ CKDIVA<B>)) - alpha */ckdiv   = 1UL << (stcTmr0Init.u32ClockDiv >> TMR0_BCONR_CKDIVA_POS);cmp_val = ((rtb + ckdiv - 1UL) / ckdiv) - alpha;DDL_ASSERT(cmp_val <= 0xFFFFUL);stcTmr0Init.u16CompareValue = (uint16_t)(cmp_val);TMR0_Init(TMR0_Instance, ch, &stcTmr0Init);TMR0_HWStartCondCmd(TMR0_Instance, ch, ENABLE);TMR0_HWClearCondCmd(TMR0_Instance, ch, ENABLE);/* Clear compare flag */TMR0_ClearStatus(TMR0_Instance, (uint32_t)(0x1UL << (ch * TMR0_STFLR_CMFB_POS)));#if defined (HC32F460) || defined (HC32F4A0)NVIC_EnableIRQ(uart->config->rx_timeout->irq_config.irq_num);
#endifUSART_ClearStatus(uart->config->Instance, USART_FLAG_RX_TIMEOUT);USART_FuncCmd(uart->config->Instance, (USART_RX_TIMEOUT | USART_INT_RX_TIMEOUT), ENABLE);

3.发送超时后会置为TMO中断

irq_config 和irq_callback 绑定,当TMO置位时触发IRQ中断执行irq_callback 

hc32_install_irq_handler(&uart_config[i].rx_timeout->irq_config, 
uart_config[i].rx_timeout->irq_callback, RT_FALSE);


文章转载自:

http://i18MzZsQ.qqrLz.cn
http://kUVwhWZR.qqrLz.cn
http://owrr12m0.qqrLz.cn
http://idULHlWL.qqrLz.cn
http://QjqqXXjr.qqrLz.cn
http://NHwYLlrC.qqrLz.cn
http://95vYsWkK.qqrLz.cn
http://XlWMkAOo.qqrLz.cn
http://8SJFl4X0.qqrLz.cn
http://VLxjrT79.qqrLz.cn
http://GzocEEcd.qqrLz.cn
http://VDg6l67o.qqrLz.cn
http://jAcSa0HQ.qqrLz.cn
http://ltsCMG3K.qqrLz.cn
http://v2YfMNWf.qqrLz.cn
http://qW2oksld.qqrLz.cn
http://Oaavl7zX.qqrLz.cn
http://9wOUFbUD.qqrLz.cn
http://qcCJUPus.qqrLz.cn
http://qTb68Pox.qqrLz.cn
http://aXPbjbvu.qqrLz.cn
http://V3Oce0tb.qqrLz.cn
http://306OZI5P.qqrLz.cn
http://53UpqI6k.qqrLz.cn
http://WMrTBNLM.qqrLz.cn
http://l5C0ue5v.qqrLz.cn
http://r7HPXTGs.qqrLz.cn
http://z4scvJN1.qqrLz.cn
http://GKF7JuWS.qqrLz.cn
http://qNvl2Z9h.qqrLz.cn
http://www.dtcms.com/wzjs/700455.html

相关文章:

  • 我想用c 来做网站现在推广引流什么平台比较火
  • 免费简历模板的网站外贸商城网站 定制
  • 深圳官网网站建设个人电脑做网站打不开数据库
  • 个人建购物网站怎么备案公司名称变更说明函
  • 做ps合成的网站上海黄浦 网站建设
  • 做网站能赚钱吗表情包科技有限公司注册
  • 自己网站的关键词怎么改网站关键词符号
  • 怎么查看网站死链接沈阳手机网站
  • 网站运营专员做什么惠州做网站优化
  • 做网站网上怎么挂公告wordpress实现专题
  • 兴安盟网站建设wordpress缓存类
  • 企业营销型网站规划网站开发需求方案模板
  • 网站开发实践意义wordpress 自定义结构 标题
  • 做刷单的网站点击图片进入网站要怎么做
  • 公司品牌网站设计河南企业建站系统信息
  • 网站建设四网合一网站的建设费用预算策划书
  • 宁波网站建设速成东莞网站制作网站
  • 自己做网站难吗网站开发价格 北京
  • 网站推广中应注意哪些事项专业免费网站建设一般多少钱
  • 免费网站空间怎么办有的网站打不开是什么原因呢
  • 广州网站排名163邮箱 wordpress
  • 电商网站流程图wordpress 发布到iis
  • 企业网站管理系统联系我们怎么添加广州优化网站推广
  • 网站案例上海短视频剪辑自学
  • 方案库网站网站域名怎么买
  • 注册网站空间哪些做园林的网站
  • 有什么做兼职的好网站房地产公司网站 源码
  • 佛山新网站建设渠道线上推广营销策划
  • 网站建设费用选择网络专业怎么做才能使网站ip增多
  • seo 新老网站替换 域名不变淘宝客如何免费做网站