完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CH571f要对接一个外设,通讯协议 延时600us 这个怎么处理
/******************************************************************************* - 函数说明:一线通数据发送【注意调试的时候,用示波器或者逻辑分析仪看一下脉冲宽度】 - 隶属模块:内部 - 参数说明:dat = 待发送的数据 - 返回说明:无 ********************************************************************************/ #define IO1_HIGH() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT |= BIT(6); #define IO1_LOW() JL_PORTA->DIR &= ~BIT(6);JL_PORTA->OUT &= ~BIT(6); void oneline_send_one_data(u8 dat) { u8 i = 0 ; IO1_LOW() ;/*现将总线拉低*/ udelay(5000) ;/*延时6MS --- 这里就是发起通讯的起始信号*/ CPU_SR_ALLOC();//关中断--芯片不同,可能接口不同 OS_ENTER_CRItiCAL();//关中断 for(i=0 ; i<8 ;i++){ if(dat & 0x01){ IO1_HIGH() ; udelay(500);/*延时600us*/ IO1_LOW(); udelay(170) ;/*延时200us*/ }else{ IO1_HIGH() ; udelay(170);/*延时200us*/ IO1_LOW(); udelay(500) ;/*延时600us*/ } dat = dat >> 1 ;/*发送的时候,先发送最高位,再发送次高位,以此类推*/ } IO1_HIGH() ;/*空闲时将该脚拉高即可*/ OS_EXIT_CRITICAL();//开中断 /*同时注意,芯片初始化的时候,请将信号脚拉高。*/ } CPU_SR_ALLOC();//关中断--芯片不同,可能接口不同 OS_ENTER_CRITICAL();//关中断 这两个怎么处理, DelayMs(200); CH571f可以这么用 udelay(500)这个就不知道怎么替代了 |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
446 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2862 浏览 2 评论
2350 浏览 1 评论
794浏览 2评论
CH565W以太网,是必须有SKCKET中断才能发送数据吗?
425浏览 1评论
329浏览 1评论
用DVP采集图像,用UDP传给PC端,采集两帧后图像报错是什么原因?
465浏览 1评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
617浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 13:42 , Processed in 1.295856 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号