STMCU小助手
发布时间:2023-3-6 12:21
|
这个文章主要是解决程序找不到设备的问题。8 ]. B" I$ ]/ E5 X8 }; D 总结过程:在kconfig文件中添加我们想要使用的设备。之后使用env工具打开该设备,并保存配置到我们的工程中,之后编译工程我们能查找到设备。$ {# G& n' k8 I3 s& l 1、首先在已有工程文件夹空白处右键conemu here,打开env工具。之后输入命令menuconfig,打开如下界面。选择最下面的硬件驱动配置进入; Z2 [2 L8 X' `- O- _ % \! E9 H6 F! \% j, J
" w$ N1 r- |( U+ g2 O 之后中间一项进入* v) C1 s6 P \$ k) r; o' f+ h 5 u6 h( E2 T" w+ i- ^2 [9 N
/ m. g% C1 _' G( J4 ^9 T 之后进入如下界面,Y键使能pwm,使能成功变星号9 Q; H0 a1 P5 T: X5 ~. ^8 s , P0 m/ p7 r' [4 R" v
5 z1 I4 X" C3 u }1 V( c1 O 之后继续点击进入如下界面也是Y键使能, r1 S$ X# p, v0 p5 Q 7 ?+ ~9 x% k0 h2 O/ e. L9 x
继续进入使能 . l) z7 T3 v& M
之后保存退出9 S/ D: K0 x' X: A- M( ` H 6 A9 G2 o# P1 U! r0 N 9 b [& l$ ~) d4 }2 q; i4 D* N5 ~" M 2、但是如果我们工程里边没有的,比如TIM1-CH1.$ e4 \: \. q& K% H) H' C3 c2 h 打开Kconfig文件 ; `5 f& f' u, a
打开后我们看到,参考这个添加我们想要的PWM) c% H" I; I( \+ B0 _( W. F , r* X$ w1 o$ n& j4 s; D y
5 G4 b& o' D+ i9 F 把tim1和tim2的4个通道都加入了; w4 | e' Z0 ?& f
* K8 {) R3 M9 N cnv工具再次打开我们的硬件驱动界面,进入PWM界面看到新增的timer1的PWM7 r: V7 ~: ?! L9 B/ a
T, y8 @5 \$ y/ G/ M0 @" z Y键使能进入,能看到我们加入的通道出现了
Y键使能我们想要使用的通道即可。之后save。6 S9 a0 S+ c& a( m* ] * v0 \; `- r$ ]: u 使用如下命令,将改动更新到mdk工程中去( E# v! `1 y8 c; C
/ L- t W% s; E$ B 此时在我们的工程中的rtconfig.h中能看我们刚才的操作,多了如下的东西# T t" S4 A2 o, Z6 v/ V6 {5 m ~! |* S" E4 t: z" U6 k2 \; v: K
3 O1 }: ^/ i! J 3、编译工程报错了, + X4 A* S& u' h/ o
0 M6 _' X9 ?9 D" P1 ^) t: H 在这个文件里照葫芦画瓢添加了tim1的 6 ]' Q$ |% D; X @
8 H# C `# `& [2 M8 K6 \ 4、试试新添加的tim1-ch3. 定义如下:3 n. D1 V: F2 ?7 S #define PWM_DEV_NAME "pwm1" #define PWM_DEV_CHANNEL 3 struct rt_device_pwm *pwm_dev; 查找设备语句如下+ }, z3 x: W- E4 q/ ~* R rt_uint32_t period, pulse, dir; period = 500000; # i, o& c, ^; T" T# j3 u4 R pulse = 0; o+ S: t t3 F pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);% l3 U# u, D" A0 l9 d8 x if (pwm_dev == RT_NULL)% r' N9 t q8 _4 R) Q {6 G5 W$ d5 Q2 Q rt_kprintf("pwm sample run failed! can't find %s device!\n", PWM_DEV_NAME);' H8 ]3 W; A% S2 m5 H' ?2 I } rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);2 v' I( i, u* n9 K; F# y1 L! V) M9 E/ q rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL); 仿真,未执行划线语句,证明配置成功了。 $ Q! ?4 X6 j" Y/ B4 \2 T+ C8 c
当然这个前提是硬件配置已经使用cube配置过了
———————————————— 版权声明:冬麻麻 3 c7 O# U/ l; A# n; i/ H# N% ` |
《STM32CubeMX2 实战课程》学习笔记5+CubeMX2生成的Uart初始化代码中没有使能
《STM32CubeMX2 实战课程》学习笔记4+FreeRTOS中的SysTick错误及改正
使用stm32C542做的低功耗密码锁示例
《STM32CubeMX2 实战课程》学习笔记1+由MX2生成MDK5项目并打开
《STM32CubeMX2 实战课程》学习笔记3.+sleep/stop/standby低功耗模式的入口
《STM32CubeMX2 实战课程》学习笔记2+MX2生成的MDK5工程中添加已存在文件(*.c / *.h)
【STM32MP257-DK】01开发板开箱、ST MPU 生态资源使用、环境搭建以及镜像更新
基于STM32在线升级OTA经验分享
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
Keil下的STM32N6之RAM运行工程配置说明
微信公众号
手机版