ch582m 在freertos例程的任務(wù)中無法對(duì)全局變量進(jìn)行賦值

用的是官方的例程,定義了一個(gè)全局變量count1,在任務(wù)1中,想對(duì)這個(gè)全局變量進(jìn)行++操作,但是發(fā)現(xiàn),沒能正常賦值,能確定的是,任務(wù)有在周期性的運(yùn)行。并且還發(fā)現(xiàn)在開啟任務(wù)調(diào)度之后,不論添加什么語句,哪怕是對(duì)變量賦值,都不會(huì)執(zhí)行。

icon_rar.gifFreeRTOS.zip

還望指教。

加上打印信息確保自加的函數(shù)是運(yùn)行到了,然后定義變量的時(shí)候加上volatile修飾,防止被優(yōu)化。


image.png我在任務(wù)一中加入了讓電平跳變的代碼,然后電平也有正常的變化,也就是程序應(yīng)該是執(zhí)行到了這塊的,剛我把全局變量前也加入了volatile修飾,接下來,我用usb把日志打印出來,試一下



定時(shí)器中斷觸發(fā)時(shí)間修改長(zhǎng)一些,修改為200ms。

定時(shí)器中斷太短,同時(shí)服務(wù)函數(shù)的執(zhí)行時(shí)間過長(zhǎng),則出中斷又進(jìn)入了中斷函數(shù),這導(dǎo)致一直在執(zhí)行定時(shí)器中斷的任務(wù),其他的任務(wù)來不及處理。


您好,我剛調(diào)試了一下,然后發(fā)現(xiàn)了問題的點(diǎn),但是不知道怎么解決
image.png
在使用freertos例程中,只要我在開啟任務(wù)后,調(diào)用spi的這個(gè)函數(shù),就會(huì)造成任務(wù)無法正確運(yùn)行,例程有說明中斷不需要用__INTERRUPT修飾,只需要用__HIGH_CODE修飾一下就行了,然后我再配置文件中看到了下面這個(gè)
image.png
但是我沒找到__INTERRUPT定義的地方,卡住了,還請(qǐng)賜教


你猜測(cè)是定時(shí)器中斷時(shí)間太短導(dǎo)致的,我直接把定時(shí)器中斷相關(guān)的全部注釋掉了,將屏幕顯示的函數(shù)移到了任務(wù)一中
image.png
測(cè)試發(fā)現(xiàn),能穩(wěn)定的進(jìn)入到任務(wù)中,但是不能正確的執(zhí)行SPI0_MasterSendByte函數(shù),屏幕上沒有任何反應(yīng)。這函數(shù)在開啟任務(wù)前調(diào)用,是可以正常執(zhí)行的


為了進(jìn)一步驗(yàn)證我的猜測(cè),我將硬件spi改成了軟件spi,然后就可以正常的運(yùn)行了。
image.png

還麻煩看一下硬件spi為啥會(huì)跟freertos產(chǎn)生沖突,麻煩了


spi阻塞的發(fā)送,rtos是會(huì)打斷這個(gè)while的。


請(qǐng)問,應(yīng)該怎么解決這個(gè)問題呢?麻煩了


運(yùn)行FreeRTOS系統(tǒng), 藍(lán)牙模塊的TMOS那套代碼能跑起來嗎?


沁恒的藍(lán)牙例程都是跑的裸機(jī)呀,沒看到freertos系統(tǒng)下的ble例程,當(dāng)然也有可能是我沒看到


SPI抓包查看數(shù)據(jù)是否發(fā)送成功,如果發(fā)送失敗就再次調(diào)用發(fā)送函數(shù)。通過抓波形判斷。數(shù)據(jù)填入buffer代表數(shù)據(jù)就已經(jīng)代表數(shù)據(jù)發(fā)送出去。

使用藍(lán)牙功能,則使用tmos系統(tǒng),暫無rtos+ble的資料參考,需要自行開發(fā)。


跑系統(tǒng)的話,用DMA吧,否則時(shí)序會(huì)要命的…


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频