鴻蒙OS Hi3861的芯片實(shí)際開發(fā)中遇到的問題
優(yōu)點(diǎn):
比較適合開發(fā)者快速開發(fā),上面的硬件操作的函數(shù)封裝很簡(jiǎn)單,非常適合初學(xué)者使用封裝好的函數(shù)調(diào)用硬件管腳,比如I2c gpio spi sdio 都被封裝了,特別簡(jiǎn)單,中文注釋,而且還提供了無線wifi 的封裝函數(shù),當(dāng)然也有http 解析啊什么的,可以使用在簡(jiǎn)單的物聯(lián)網(wǎng)控制的簡(jiǎn)單設(shè)備上。
談?wù)勎矣龅降膯栴}:
使用PWM 時(shí)候,竟然I2C 不能使用,最后發(fā)現(xiàn)復(fù)用出了問題,很是不解。
附上代碼可以觀察下現(xiàn)象。
首先復(fù)用PWM3 ,管腳復(fù)用了PIN12
//COM3 PWM3
IoSetFunc(WIFI_IOT_IO_FUNC_GPIO_12_GPIO,WIFI_IOT_IO_FUNC_GPIO_6_PWM3_OUT;
GpioSetDir(WIFI_IOT_IO_FUNC_GPIO_12_GPIO, WIFI_IOT_GPIO_DIR_OUT);
PwmInit(WIFI_IOT_PWM_PORT_PWM3);
下面是I2C 管腳復(fù)用 PIN0和PIN1
//GPIO_0復(fù)用為I2C1_SDA
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA);
//GPIO_1復(fù)用為I2C1_SCL
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL);
再看看PWM3 上 I2C 正好在這里
typedef enum {
/** GPIO0 function */
WIFI_IOT_IO_FUNC_GPIO_0_GPIO,
/** Functions of UART1 TXD */
WIFI_IOT_IO_FUNC_GPIO_0_UART1_TXD = 2,
/** SPI1 CK function */
WIFI_IOT_IO_FUNC_GPIO_0_SPI1_CK,
/** Functions of JTAG TD0 */
WIFI_IOT_IO_FUNC_GPIO_0_JTAG_TDO,
/** PWM3 OUT function */
WIFI_IOT_IO_FUNC_GPIO_0_PWM3_OUT,
/** I2C1 SDA function */
WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA,
} WifiIotIoFuncGpio0;
/**
我先初始化了PWM 后初始化了I2C ,現(xiàn)象是PWM不能用,
而先初始化I2C 在初始化 PWM ,I2C 能用了。
這種問題就尷尬了,本來打算用這上面的4路PWM 和i2c ,
但是PWM 和I2c 竟然沖突了,現(xiàn)在辦法就是 gpio 去模擬pwm了。文章來源:http://www.zghlxwxcb.cn/news/detail-490598.html
隨后定時(shí)器去模擬,發(fā)現(xiàn)定時(shí)器只能使用ms 定時(shí)器,頻率太低了跟不上。
也有微秒定時(shí)器,在定時(shí)器回調(diào)里設(shè)置gpio高低電平,最終現(xiàn)象是HM 系統(tǒng)卡死。文章來源地址http://www.zghlxwxcb.cn/news/detail-490598.html
實(shí)在沒辦法了,只能放棄使用Hi3861 ,請(qǐng)各位網(wǎng)友謹(jǐn)慎踩坑HI3861
到了這里,關(guān)于鴻蒙OS Hi3861的芯片實(shí)際開發(fā)中遇到的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!