衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【RTT大賽作品連載】CH32V RTT微秒延時的實現

煲仔鹵煮的煉鋼 ? 來源:煲仔鹵煮的煉鋼 ? 作者:煲仔鹵煮的煉鋼 ? 2021-11-29 08:30 ? 次閱讀

CH32V103是沁恒出的一款基于RiscV核心的單片機,在官網有該芯片資料、庫函數和例程,另外沁恒還開發了一款IDE:MounRiver Studio。里面也提供了不少的例程可以參考,其中就有帶rt-thread操作系統的例程,雖然只有一個LED的,但聊勝于無,畢竟rt-thread的bsp中還沒有支持到這個芯片。

所以我就基于led功能進行了新功能的開發,但發現其中bsp這塊確實匱乏,只有gpio和uart的drv實現,其他的都還沒做移植,也罷,那我就??!

先不用其他了。。iic spi之類的直接用庫函數來操作了。什么?你說移植下不就好了?

對啊,但是打工人沒時間啊。。哎

會到本帖主題,在調試IIC的時候我發現總是卡在busy,初始化之后就開始總線繁忙,怎么也越不過去了。。。雖然我知道這不一定是像STM32那樣的硬件故障導致的,但是卡的我還是選擇了軟件仿真iic,結果直接就能讀到數據了。。。

嗯,本帖也不是講IIC的,是在過程中我發現沒有微妙延時啊,drv_common也沒有移植過來。。。所以rt_hw_us_delay()這個光有聲明沒有實現。。

于是我參考drv_common中的實現方法,實現了個

void rt_hw_us_delay(rt_uint32_t us)
{
    rt_uint32_t start, now, delta, reload, us_tick;
    start = SysTick->VAL;
    reload = SysTick->LOAD;
    us_tick = SystemCoreClock / 1000000UL;
    do {
        now = SysTick->VAL;
        delta = start > now ? start - now : reload + start - now;
    } while(delta < us_tick * us);
}

因為CH32V103的systick寄存器定義和st的有些差異,因此這里我就直接取值定義了兩個宏,在CH32V103的手冊中有描述,系統計數器低位/高位寄存器可以通過8位/16位/32位來讀取,但只能8位來寫入。

poYBAGGjWSmATYs7AAFbSXibDH4796.png

反正也只是讀取數據,就無所謂了。

#define SysTick_VAL          ((UINT32 *) 0xE000F004)
#define SysTick_LOAD         ((UINT32 *) 0xE000F00C)
void rt_hw_us_delay(rt_uint32_t us)
{
    rt_uint32_t start, now, delta, reload, us_tick;
    start = *SysTick_VAL;
    reload = *SysTick_LOAD;
    us_tick = SystemCoreClock / 1000000UL;
    do {
        now = *SysTick_VAL;
        delta = start > now ? start - now : reload + start - now;
    } while(delta < us_tick * us);
}

這段函數定義在board.c中,這樣就不用聲明,直接可以用了。

這樣我的模擬iic速度就起來了。

“為啥不移植下drv_common.c?”

“因為我懶。。”

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44621

    瀏覽量

    638624
  • RTT
    RTT
    +關注

    關注

    0

    文章

    65

    瀏覽量

    17219
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40391
  • RISC-V
    +關注

    關注

    45

    文章

    2324

    瀏覽量

    46604
  • ch32
    +關注

    關注

    0

    文章

    73

    瀏覽量

    699
收藏 人收藏

    評論

    相關推薦

    RTT大賽作品連載】AB32VG1評估板到貨控制彩燈測試

    RTT大賽作品連載】AB32VG1評估板到貨控制彩燈測試篇;接下來看看在如何AB32VG1評估板控制彩燈! 在RT-ThreadStudio新建項目到對應開發配置及下載及驗證測試!
    的頭像 發表于 11-07 19:39 ?5269次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】AB32VG1評估板到貨控制彩燈測試

    RTT大賽作品連載CH32V103開發板資料及上電首測

    簡介 ? 參加論壇舉辦的rtt大賽也有幾天了,我選用的是CH32V103的板子,第一步就是收集板卡的相關資料了。 CH32V103是 沁恒微電子設計的一款RSIC-
    的頭像 發表于 11-15 08:45 ?8770次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】<b class='flag-5'>CH32V</b>103開發板資料及上電首測

    RTT大賽作品連載】AB32VG1評估板 音樂播放器

    RTT大賽作品連載】AB32VG1評估板 音樂播放器
    的頭像 發表于 11-12 21:11 ?6307次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】AB32VG1評估板 音樂播放器

    RTT大賽作品連載】中科藍訊AB32VG1開發板開箱篇

    介紹電路原理圖分析接口說明,AB32VG1開發板是以中科藍訊(Bluetrum)公司推出的基于RISC-V架構的高配置芯片AB5301A為核心所組成的?!?b class='flag-5'>RTT大賽作品
    的頭像 發表于 11-13 10:01 ?1.1w次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】中科藍訊AB32VG1開發板開箱篇

    RTT大賽作品連載CH32V103 USBHID鍵盤鼠標

    基于CH32V103實現了USB HID的鍵盤鼠標功能,提供寫好的代碼文件,歡迎fork。
    的頭像 發表于 11-29 08:49 ?8071次閱讀

    RTT大賽作品連載】 PWM操作蜂鳴器

    使用AB32VG1的PWM來操作無源蜂鳴器,能夠輸出頻率為1KHz到20KHz的聲音。
    的頭像 發表于 12-06 08:36 ?9755次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】 PWM操作蜂鳴器

    RTT大賽作品連載】 OLED顯示中文

    使用AB32VG1操作OLED顯示文字信息,包括漢字取模方式介紹,漢字顯示函數編寫.
    的頭像 發表于 12-06 09:25 ?9071次閱讀
    【<b class='flag-5'>RTT</b><b class='flag-5'>大賽</b><b class='flag-5'>作品</b><b class='flag-5'>連載</b>】 OLED顯示中文

    【文章連載】RT-Thread創新應用大賽文章匯總

    連載】中科藍訊AB32VG1開發板開箱篇專欄作者:煲仔鹵煮的煉鋼【RTT大賽作品連載CH32V
    發表于 10-11 15:13

    【有獎活動】RT-Thread創新應用大賽作品連載征文

    禮品:https://jifen.elecfans.com/index.html?文章標題格式:【RTT大賽作品連載】+自擬內容?文章作品
    發表于 10-21 18:49

    【二等獎】RT-Thread創新應用設計大賽作品1

    ,于是研究了下并寫了【RTT大賽作品連載CH32V RTT
    發表于 01-25 11:49

    RTT Studio ch32v307的堆內存最大化

    看看ch32v的各個段是怎么分配的,不熟悉鏈接腳本的盆友可以先看這個,這個文章講的挺好,RISC-V MCU CH32V307 ld鏈接腳本說明點開Link.ld(RTT Studio
    發表于 02-07 11:55

    華大單片機HC32L136+RTT踩坑(官方延時函數)

    問題:移植完RTT后運行正常,加入ADC測量后卡死在空閑線程。原因:華大單片機官方庫中含有延時函數,延時函數使用滴答定時器實現。在ADC使用中必需開啟BGR模塊(功能沒看懂),開啟過程
    發表于 11-23 17:21 ?13次下載
    華大單片機HC32L136+<b class='flag-5'>RTT</b>踩坑(官方<b class='flag-5'>延時</b>函數)

    MM32F013x——RTT使用技巧

    SEGGER的實時傳輸(Real Time Transfer, RTT)是嵌入式應用中用戶I/O交互的一種新技術。J-Link RTT Viewer是在調試主機上使用RTT功能的Win...
    發表于 01-25 18:34 ?4次下載
    MM32F013x——<b class='flag-5'>RTT</b>使用技巧

    RTT是什么?對TCP中RTT時延的理解

    最近服務器環境部署了**tcprtt**網絡時延監控,發現不同服務器不同節點之間的RTT時延表象非常奇怪,無法準確的判斷服務器的網絡情況。
    的頭像 發表于 10-09 16:24 ?4.1w次閱讀
    <b class='flag-5'>RTT</b>是什么?對TCP中<b class='flag-5'>RTT</b>時延的理解

    RTT_Draco的外置uart接口(TXD,RXD)怎么配置和使用呢?

    RTT_Draco的外置uart接口(TXD,RXD)怎么配置和使用呢? RT-Thread的RTT_Draco是一款高性能的MCU芯片,它提供了外置UART接口(TXD,RXD)用于與外部設備進行
    的頭像 發表于 01-16 17:11 ?1191次閱讀
    顶尖百家乐官网对单| 百家乐官网赌场优势| 百家乐真人游戏娱乐网| 百家乐官网新注册送彩金| 百家乐群sun811.com| 百家乐官网真钱娱乐| 威尼斯人娱乐场 新世纪| 百家乐官网大| 百家乐官网玩法开户彩公司| 百家乐庄闲和各是多少| 连环百家乐官网的玩法技巧和规则| 百家乐官网策略| 线上龙虎| 大发888出纳柜台登入| 百家乐大路图| 足球百家乐网上投注| 大桥下做生意风水好吗| 百家乐官网游戏排行榜| 喜達博彩网| 瑞丰备用网址| 大发888出纳柜台登入| 百家乐生活馆拖鞋| 游艇会百家乐官网的玩法技巧和规则| 真人百家乐官网开户优惠| 澳门足球| 516棋牌游戏加速器| 网上玩百家乐会出签吗| 百家乐官网如何买大小| 百家乐官网赌博网址| 百家乐官网技巧之写路| 真人百家乐游戏软件| 百家乐官网鞋| 蓝盾百家乐官网赌场| 百家乐官网哪家信誉好| 百家乐官网线上代理网站| 缅甸百家乐官网娱乐| 百家乐官网彩金| 古交市| 莆田棋牌迷游戏中心| 德州扑克高牌| 中国足球竞猜|